我在我的应用程序上实现了In App Browser本机功能。该功能运行正常。现在我遇到了一个问题。当用户在进入网页后点击设备的后退按钮时它就没有了在app上显示任何动态数据。我已在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(); }
);
}
答案 0 :(得分:2)
OP的反馈:
这实际上不是代码的问题。这是“Ionic View”应用程序的一个问题。我在我的Android设备上安装了.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
并使用它。
希望有所帮助:)