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

Ionic Firebasex don't work in background (iOS)

我正在使用 Ionic3 并使用 FirebaseX Cordova 插件(因为 firebase 插件它根本不工作)并且当应用程序在前台(打开)时消息进入应用程序(不是作为通知)完美,但是在后台(使用另一个应用程序)时,通知不显示...当我打开应用程序时,消息进入应用程序(不是通知)...

我完全使用作者示例(只更改了包 ID,以便我可以注册为 Firebase 项目)

我使用付费开发者账户,我定义了一个 APN,上传到 firebase 等

在功能中激活远程通知(推送和后台)

但还是...

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

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

请帮忙!谢谢!

我找到了解决办法!也许它可以帮助某人......现在使用 FirebaseX Cordova 插件 你需要明确地 请求许可(使用旧的 firebase cordova 插件,是自动问...)

插入此代码:

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

就是这样(如果用户说 'yes'!)

在 firebasex cordova 插件中,您必须像这样请求许可。

只有 hasPermission() 才能调用 grantPermission() returns false:

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");
}

});