【问题标题】:iRoot is not defined, 2nd time launch the appiRoo​​t 未定义,第二次启动应用程序
【发布时间】:2020-07-07 01:37:32
【问题描述】:

当应用程序第一次启动时,这是工作,然后从会话中删除应用程序,然后启动应用程序,它说

IRoot 未定义

declare var IRoot: any;

ngOnInit() {
 this._platform.ready().then(() => {
   if (typeof (IRoot) !== 'undefined' && IRoot) {
       IRoot.isRooted((data) => {
           if (data && data == 1) {
              this.isRootedORJailBreak = true
              console.log("*******This is routed device");
         } else {
             this.isRootedORJailBreak = false
            console.log("*******This is not routed device");
        }
    }, (data) => {
            this.isRootedORJailBreak = false
           console.log("*******routed device detection failed case", data);
    });
    });
} }

【问题讨论】:

    标签: angular cordova ionic-framework


    【解决方案1】:

    cordova 准备好时插件似乎还没有准备好,或者没有及时注册。

    您可以尝试使用setTimeout(() => { // your code }, 500); 将您的代码封装在plataform.ready() 中,看看是否可行。

    我在 github 上看到了你的问题以及他们给你的回复,但和你在这里尝试的一样。

    更新

    this._platform.ready().then(() => {})块内的代码移动到ionViewDidEnter钩子,ngOnInit的问题是它可以被缓存并且只会被调用一次,ionViewDidEnter会一直被调用,如果组件之前已初始化,则无关紧要。

    看来问题出在缓存上。

    【讨论】:

    • 其实我在ngOnInit 中调用这个app.component.ts。即使我从platform.ready() 打来电话,我第二次收到相同的错误消息。但它第一次工作?怎么样?
    • 用另一个钩子试试,比如ionViewDidEnter而不是ngOnInit,我想检查一下这是否是缓存的问题。或者检查第二次运行应用程序时是否调用了“ngOnInit”,在ngOnInit 块内添加一个console.log("foo"),在platform.ready().then(() => {/* here */}) 块内添加另一个。这只是为了检查代码在第二次启动时到达或未到达。
    • 我删除了 this._platform.ready().then(() => {} 并将代码从 app.component.ts 移动到主登录屏幕 ionViewDidEnter 方法。它正在工作
    • 太棒了,我将使用 cmets 中发布的信息更新答案。
    • 如果您觉得这个答案解决了您的问题,请将此答案设置为解决方案,谢谢。
    【解决方案2】:

    删除(IRoute) 周围的括号,因为它将首先评估typeof (IRoute) 之前的括号内容。

    话虽如此,IRout 仍然是未定义的,您需要在未定义时采取措施。

    如果它是一个远程库,则触发一个 onload 事件,以便在需要它的地方可以等待它加载。

    【讨论】:

    • 我的要求是设备是否已植根/越狱不允许更多选项。如果 IRoot 未定义,我如何检查设备 root/越狱。?可以采取什么行动?
    • 这是一个不同的问题,我建议你创建一个新线程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多