我已经在我的应用程序上实现了应用内浏览器原生功能。该功能工作正常。现在我有一个问题。当用户在进入网页后单击设备的后退按钮时,它不会在应用程序上显示任何动态数据。我已经在constructor()
内实现了数据获取部分。你能告诉我如何解决这个问题吗?该应用程序在其他用例上运行良好。这只发生在我去浏览器的时候。
这是关于该问题的视频。
constructor(public storage: Storage) {
super(storage);
super.getToken().then((val) => {//get token
this.token = val;
this.getEventList(this.token);
});
}
//get event list
getEventList(data): any {
this.eventData.getEventList(data).subscribe(
result => {
this.eventList = this.getManagedEventList(result.eventinfo);
},
err => { loading.dismiss(); },
() => { loading.dismiss(); }
);
}
OP 的反馈:
这实际上不是代码的问题。这是"Ionic View"应用程序的问题。我已经在我的安卓设备上安装了.apk
,没有问题。它工作正常。我认为模拟环境和实际设备之间存在巨大差异。
原答案:
尝试为此使用页面生命周期或平台恢复(或两者兼而有之(
import { Platform } from 'ionic-angular';
constructor(public storage: Storage, public plat: Platform) {
super(storage);
super.getToken().then((val) => {//get token
this.token = val;
this.getEventList(this.token);
});
//WHEN YOU USE INAPPBROWSER THE APP IS PAUSED, SO WHEN YOU GO BACK TO IT, IT FIRES A RESUME EVENT
plat.resume.subscribe(() => {
//CODE TO GET YOUR LIST
})
}
// WITH THIS LIFECYCLE EVENT EVERY TIME THE PAGE IS ENTERED (GOING BACK OR FORTH) THE FUNCTION IS FIRED
ionViewWillEnter(){
//GET THE EVENT LIST
}
//get event list
getEventList(data): any {
this.eventData.getEventList(data).subscribe(
result => {
this.eventList = this.getManagedEventList(result.eventinfo);
},
err => { loading.dismiss(); },
() => { loading.dismiss(); }
);
}
默认情况下,您可以毫无问题地使用页面生命周期事件,但它会抛出任何错误,您可以尝试导入NavController
并从中使用。
希望对:)有所帮助