如何在“应用程序浏览器”视图中返回应用程序

时间:2017-03-28 12:38:24

标签: angular ionic-framework ionic2 inappbrowser

我在我的应用程序上实现了In App Browser本机功能。该功能运行正常。现在我遇到了一个问题。当用户在进入网页后点击设备的后退按钮时它就没有了在app上显示任何动态数据。我已在constructor()内实现了数据提取部分。你能告诉我如何解决这个问题吗?该应用程序在其他用例上运行良好。这只有在我访问浏览器时才会发生。

这是Video about the issue

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(); }
    );
  }

1 个答案:

答案 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并使用它。

希望有所帮助:)