2017-02-10 65 views
0

在我的應用程序中,當應用程序從睡眠中恢復時,我想 重新加載頁面 - 或者理想情況下,只更新特定的UI元素。Nativescript - resumeEvent處理

這怎麼辦?

最好以平臺獨立的方式。

回答

0

您想要掛鉤application模塊中的onResume方法,該方法會在應用程序從後臺恢復時公開事件。

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

所以在你app.js(應用程序的入口點),導入模塊,並添加的onResume事件處理程序,它可以每次運行應用程序恢復。現在重新加載頁面需要更多的工作。您必須使用frame模塊並找出當前頁面並完成您的工作,但我猜測使用上述方法可以稍微付出一些努力。

更新:根據您的評論,您需要從ui/frame模塊reloadPage()方法。 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()(由@Brad貢獻),但問題是它不是暴露的api。

沒問題 - 只需複製/粘貼它,它就可以工作。

問題是,它基本上做一個navigateTo()到當前頁面,並影響導航歷史記錄。你有2個選擇 - 將clearHistory設置爲true,並且你失去了所有的歷史記錄(不需要這樣做),或者將clearHistory設置爲false,從而創建當前頁面的副本(不要那麼做)。還有一個backstackVisible選項,但在這種情況下不起作用。

@Brad告訴我,有一個API允許訪問導航堆棧 - 沒有看過它。

對於我的應用程序 - 用戶大多數時間都在根頁面,所以我決定只在根頁面上重新加載頁面,然後將clearHistory設置爲true,並且適用於我。