【问题标题】:Ionic Firebasex don't work in background (iOS)Ionic Firebasex 不能在后台运行 (iOS)
【发布时间】:2020-02-21 22:14:39
【问题描述】:

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

我正在使用 Author 示例(仅更改了 bundle id 以便我可以注册为 Firebase 项目)

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

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

但还是……

奇怪的是,当 App 打开时,它在日志中显示:

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

请帮忙!谢谢!

【问题讨论】:

  • 嗨,Ari,您能否给我发送一个您发送到 iOS 设备的 json 数据示例?

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


【解决方案1】:

我找到了解决方案!也许它对某人有帮助...现在使用 FirebaseX Cordova 插件 您需要明确请求许可(使用旧的 firebase cordova 插件,会自动询问...)

插入此代码:

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

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

【讨论】:

  • 如果不设置权限,您可能会在控制台输出的某处看到一条消息,提示您没有权限或未授予权限。
【解决方案2】:

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

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    • 2020-08-09
    相关资源
    最近更新 更多