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