带有科尔多瓦前台和后台 n 的 Firebase 推送通知

Posted

技术标签:

【中文标题】带有科尔多瓦前台和后台 n 的 Firebase 推送通知【英文标题】:Firebase push notifications with cordova foreground and background n 【发布时间】:2021-08-13 09:30:45 【问题描述】:

我正在使用 react Project 开发 Cordova。我已经为 androidios 设置了 google firebase google-services.json 和 GoogleService-Info.plist。我正在使用以下软件包进行 Firebase 通知设置。

https://github.com/andrehtissot/cordova-plugin-fcm-with-dependecy-updated

FCM.requestPushPermission(
    ios9Support: 
        timeout: 10, // How long it will wait for a decision from the user before returning `false`
        interval: 0.3, // How long between each permission verification
    ,
).then((wasPermissionGiven) => 
    console.log(wasPermissionGiven);
    alert(JSON.stringify(wasPermissionGiven));
    if (wasPermissionGiven) 
        FCM.getAPNSToken().then((apnsToken) => 
            alert(JSON.stringify(apnsToken));
            console.log(apnsToken);
        );

        FCM.getToken().then((apnsToken) => 
            alert(JSON.stringify(apnsToken));
            console.log(apnsToken);
        );

        FCM.subscribeToTopic('handsome');
        const disposables = FCM.onNotification((payload) => 
            alert(JSON.stringify(payload.toString()));
            console.log('payload', payload);
        );
    
);

通过使用上面的代码,我得到了令牌和有效负载。目前,我正在使用弹出窗口填充有效负载。有人可以帮我实现通知而不是弹出窗口吗?我在 google 中搜索了很多,没有找到任何使用 Cordova react 实现通知的参考。

【问题讨论】:

如果我认为我是正确的,那么您需要向 FCM 推送通知,FCM 会将其推送到设备。 @VijayDev 你有任何示例 sn-p 或参考链接吗? 不,我自己从未实现过。但是很容易理解,FCM 是推送通知的唯一方式。所以通知用户通知设置完成是通过FCM发送一个。 【参考方案1】:

案例 1:在后台状态下测试应用

从 firebase 云消息发送通知并在后台测试应用程序/最小化应用程序,然后您将看到通知。

案例 2:在前台状态下测试应用

您应该使用一些类似于此插件https://github.com/katzer/cordova-plugin-local-notifications#readme 的插件来在应用程序处于前台时获取 Firebase 通知。

【讨论】:

有效吗?我无法使用它。请为此举个例子。提前谢谢你。

以上是关于带有科尔多瓦前台和后台 n 的 Firebase 推送通知的主要内容,如果未能解决你的问题,请参考以下文章

Firebase Cloud Messaging 通知未显示在 iOS 设备上(前台和后台)

是否可以更改使用 firebase 显示推送通知的方式

Flutter Firebase前台推送通知未显示但后台正在运行

带有 facebook/gmail 的 OAuth 不适用于 iOS 模拟器(Cordova 应用程序 + Firebase)

在一个事件中在后台触发本机 Firebase 多个通知

Web firebase.messaging().onMessage 未触发,但后台通知完美触发