Ionic Firebasex无法在后台(iOS)中运行

时间:2019-10-25 14:33:12

标签: ios cordova ionic-framework ionic3 firebase-cloud-messaging

我正在使用Ionic3并使用FirebaseX Cordova插件(因为firebase插件根本无法使用),并且当应用程序处于前台(打开状态)时,消息在应用程序中的获得(不是作为通知)是完美的,但是当后台(使用其他应用程序)通知不显示...当我打开应用程序时,消息进入应用程序(不是作为通知)...

我使用的是Author示例(完全更改了包ID,因此我可以注册为Firebase项目)

我使用付费的开发者帐户,定义了APN,已上传到Firebase等。

激活功能中的远程通知(在Push和Background上)

但还是...

奇怪的是,当应用程序打开时,它在日志中说:

2019-10-25 11:20:50.152424-0300 FirebaseX Ionic 3示例[560:180512] FCM直接通道= true

,当应用程序进入后台时,登录信息显示:

2019-10-25 11:20:50.152424-0300 FirebaseX Ionic 3示例[560:180512] FCM直接通道= false

当我再次打开该应用程序时,它又返回到 true ,并收到通知!

我知道FCM是Firebase Cloud Messagin,所以...但是我不知道为什么会变成 false

请帮忙!谢谢!

2 个答案:

答案 0 :(得分:1)

我找到了解决方案!也许可以帮助某人...现在,使用 FirebaseX Cordova插件,您需要明确寻求许可(对于旧的Firebase Cordova插件,是自动询问的...)< / p>

插入此代码:

this.firebasePlugin.grantPermission(function(hasPermission){
    console.log("Permission was " + (hasPermission ? "granted" : "denied"));
});

就是这样(如果用户说“是”!)

答案 1 :(得分:0)

在firebasex cordova插件中,您必须征得这样的许可。

仅当hasPermission()返回false时,才可以调用GrantPermission():

window.FirebasePlugin.hasPermission(function(hasPermission){
if(!hasPermission){
    window.FirebasePlugin.grantPermission(function(permissionGranted){
        if(permissionGranted){
            console.log("Permission granted");
        }else{
            console.warn("Permission denied");
        }
    });
}else{
    console.log("Permission already granted");
}

});