Ionic2 检查应用程序是否正在使用DevAPP

Ionic2 检查应用程序是否正在使用DevAPP,ionic2,ionic3,ionic-devapp,Ionic2,Ionic3,Ionic Devapp,我正试图弄清楚如何检查我的Ionic应用程序是否在DevAPP上运行(DevAPP是一个测试平台,在您的设备上本地运行您的应用程序) 这一点很重要,因为我使用的插件在DevAPP中不可用,因此会使应用程序崩溃。我希望能够执行某种检查,看看应用程序是否正在使用DevAPP运行。如果是的话,我不会为不可用的插件调用代码 我试过检查platform.platforms(),但它只是说“移动、android、phablet、mobileweb”。这些似乎并不表明DevAPP正在运行 另一个可能的解决方案

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

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

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


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

好吧。嗯,我不知道如何在代码中特别检查应用程序当前是否在DevAPP上运行。但我确实找到了解决问题的办法。事实上,这是非常直截了当的

由于我尝试使用的本机插件返回承诺,因此我只使用了承诺中可用的.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
});
这也可以通过处理错误响应选项来处理可观察对象:

this.fcm.onNotification().subscribe( 
    data => {
        console.log( 'data: ', data ); //@DEBUG
    },
    error => {
        console.log( 'Error Subscribing to FCM Notification: ', error ); //@DEBUG
    }
); 
实现此代码后,我的应用程序在DevAPP中运行时不再崩溃