NativeScript 识别页面是不是完全呈现

Posted

技术标签:

【中文标题】NativeScript 识别页面是不是完全呈现【英文标题】:NativeScript recognize if page is fully renderedNativeScript 识别页面是否完全呈现 【发布时间】:2017-11-22 18:08:19 【问题描述】:

如何识别 NativeScript 页面是否完全呈现并且对用户可见?最好是一种方法,我可以在其中调用 timestamp/console.log 。 NativeScript 有两种风格,NS Core 和 NS Angular。我不太确定这是否能实现这一点?

对于 NS/Cores:页面加载事件的事件处理程序。

    function pageLoaded()
      console.log()
               
   <Page loaded="pageLoaded">

https://docs.nativescript.org/cookbook/ui/page

对于 NS/Angular:ngOnInit

    ngOnInit()
      console.log()
    

https://docs.nativescript.org/tutorial/ng-chapter-4

【问题讨论】:

【参考方案1】:

对于 Angular,我宁愿使用 ngAfterViewInit 而不是 ngOnInit。 ngOnInit 对于与 NativeScript 相关的任何事情都已经完成,更多的是关于 Angular 生命周期钩子here。实际上,即使在ngAfterViewInit 中,诸如 Angular 绑定之类的某些事情可能仍未完全解决,因此该钩子并非 100% 安全,即 100% 的页面及其内容已被初始化。

据我所知,没有一个回调可以告诉您何时加载整个页面及其内容,因为它们是单独的元素。您可能必须使用该页面中您想知道已加载的每个元素,并分别附加其loaded 回调。

【讨论】:

以上是关于NativeScript 识别页面是不是完全呈现的主要内容,如果未能解决你的问题,请参考以下文章

Nativescript-vue TabView 无法呈现来自 API 的第一个项目

为啥我的 Nativescript-vue 应用程序在呈现模态之前使用硬件后退按钮时崩溃?

NativeScript Angular RadListView 渲染极其缓慢

ListView 不在 ScrollView 和 StackLayout 内呈现,在 ios 中具有水平方向 - nativescript-vue

Nativescript 无法识别 Xcode (High Sierra)

页面完全呈现后运行 javascript