Nativescript - resumeEvent 处理

Nativescript - resumeEvent handling

在我的应用程序中,当应用程序从休眠状态恢复时,我想 重新加载页面 - 或者理想情况下,只更新特定的 UI 元素。

如何做到这一点?

最好以独立于平台的方式。

您想挂接到 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

正确的方法是 Frame 模块中的 reloadPage()(由@Brad 贡献),但问题是它不是公开的 api。

没问题 - copy/paste 就可以了。

问题是它基本上对 currentPage 执行 navigateTo() 并影响导航历史记录。您有 2 个选择 - 将 clearHistory 设置为 true 并且您将丢失所有历史记录(不想那样)或将 clearHistory 设置为 false 这会创建 current-page 的副本(也不希望那样)。还有一个 backstackVisible 选项,但在这种情况下没有帮助。

@Brad 告诉我有 api 允许访问导航堆栈 - 还没有调查它。

对于我的应用程序 - 用户大部分时间都在根页面,所以我决定仅在根页面上重新加载页面,然后将 clearHistory 设置为 true,这对我有用。