Как вернуться в приложение после просмотра в браузере приложений

В моем приложении реализована встроенная функция браузера приложений. Эта функция работает нормально. Теперь у меня есть проблема. Когда пользователь нажимает кнопку "Назад" на устройстве после перехода на веб-страницу, он не отображает никаких динамических данных. приложение. Я реализовал часть извлечения данных внутри 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(); }
    );
  }

1 ответ

Решение

Отзыв ОП:

Это на самом деле не проблема кода. Это проблема приложения "Ionic View". Я установил .apk на моем устройстве Android и никаких проблем. Это работает нормально. Я думаю, что есть огромная разница между моделируемой средой и фактическим устройством.

Оригинальный ответ:

Попробуйте использовать жизненный цикл страницы или резюме платформы для этого (или обоих)

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 и использовать от этого.

Надеюсь, поможет:)

Другие вопросы по тегам