2017-02-10 2 views
0

В моем приложении, когда приложение возобновлено из-за сна, я хочу, чтобы перезагрузить страницу - или, в идеале, просто обновить определенные элементы пользовательского интерфейса.Nativescript - resumeEvent handling

Как это можно сделать?

Предпочтительно в платформе независимый способ.

ответ

0

Вы хотите подключиться к методу onResume в модуле application, который предоставляет событие, когда приложение возобновляется с фона.

https://docs.nativescript.org/api-reference/modules/application.html#onresume

Так что в вашем app.js (точка входа приложения), импортировать модуль и добавить обработчик событий onResume и он может работать каждый раз, когда в приложение резюме. Теперь перезагрузка страницы потребует немного больше работы. Вам нужно будет использовать модуль frame и узнать текущую страницу и выполнить свою работу, но я предполагаю, что это можно сделать с небольшими усилиями, используя упомянутый подход.

ОБНОВЛЕНИЕ: основываясь на вашем комментарии, вам нужен метод reloadPage() от модуля ui/frame. https://docs.nativescript.org/api-reference/modules/_ui_frame_.html#reloadpage

+0

Приносим извинения, что не указывая больше. У меня есть обратный вызов события, а также можно получить текущую страницу через frameModule.topmost(). CurrentPage. Я искал что-то вроде refresh(), reload() - ничего не нашел. – dashman

+0

https://docs.nativescript.org/api-reference/modules/_ui_frame_.html#reloadpage –

+0

это для iOS - но спасибо. Теперь ищем решение для Android. – dashman

0

Правильный метод - reloadPage() в модуле Frame (как внесено в @Brad), но проблема в том, что он НЕ является открытым api.

Нет проблем - просто скопируйте и вставьте его, и он будет работать.

Проблема в том, что в основном это navigateTo() для текущей страницы и которая влияет на историю навигации. У вас есть 2 варианта - установка clearHistory в true, и вы потеряете всю историю (не хотите этого) или установите clearHistory в false, что создает дубликат текущей страницы (не нужно также). Также есть опция backstackVisible, но это не помогает в этом сценарии.

@Brad сообщает мне, что есть api, который позволяет получить доступ к стеке навигации - не просмотрел его.

Для моего приложения - пользователь будет на корневой странице большую часть времени, поэтому я решил перезагрузить страницу, только если на корневой странице, а затем установите clearHistory в true и это работает для меня.