0

我试图弄清楚如何检查我的 Ionic 应用程序是否在 DevAPP 上运行(DevAPP 是一个测试平台,可以在您的设备上本地运行您的应用程序)。

这很重要,因为我使用的插件在 DevAPP 中不可用,因此它会使应用程序崩溃。我希望能够执行某种检查以查看应用程序是否正在使用 DevAPP 运行。而且,如果是这样,我就不会调用不可用插件的代码。

我试过检查platform.platforms(),但它只显示“mobile,android,phablet,mobileweb”。这些似乎并不表明 DevAPP 正在运行。

另一种可能的解决方案是检查是否安装了插件。我尝试检查注入的变量是否为真if( this.fcm ),但这仍然会使应用程序崩溃。

4

1 回答 1

0

好的。好吧,我无法弄清楚如何在代码中专门检查应用程序当前是否在 DevAPP 上运行。但我确实设法找到了解决问题的方法。这实际上非常简单。

由于我尝试使用的本机插件返回一个 Promise,我只使用了 Promise 上可用的 .catch() 方法:

this.fcm.getToken().then( token => {
    console.log( 'token: ', token ); //@DEBUG
})
.catch( error => { // Catch error that FCM is not available in DevAPP and web
    console.log( 'Error Getting FCM Token: ', error ); //@DEBUG
});

这也可以通过处理错误响应选项与 Observables 一起使用:

this.fcm.onNotification().subscribe( 
    data => {
        console.log( 'data: ', data ); //@DEBUG
    },
    error => {
        console.log( 'Error Subscribing to FCM Notification: ', error ); //@DEBUG
    }
); 

实现此代码后,我的应用程序在 DevAPP 中运行时不再崩溃。

于 2018-06-06T17:33:27.513 回答