cordova FCM后台推送通知(Android)



是否有人真正使用FCM-FireBase云消息创建设备推送通知,该通知带有交互式操作按钮,在应用程序处于后台/关闭状态时运行?

目标是让用户能够对WhatsApp、Messenger等通知做出反应。。。

这个应用程序是cordova,所以任何有经验的人都会很棒。

我已经完成了所有的FCM设置和后端工作。我已经可以触发一个简单的通知";标题+正文+图标/消息";

根据FCM的说法,有效载荷可以包含通知部分,操作系统将在其中处理通知,但没有说明它能够包含按钮。(所以没那么有趣(。然而,可以使用";数据";部分,其中包含发送到应用程序的值-键对,以在onMessage回调上使用按钮生成本地通知。

[更新]如果应用程序被刷,带有数据的推送服务不会触发应用程序创建本地通知(一些品牌在从最近的应用程序中刷时会杀死应用程序-停止javascript执行(。结论:为了使FCM数据有效载荷消息工作,必须使用服务捕获推送广播消息事件(本地端(,然后使用基于该数据有效载荷的按钮创建通知生成(本地方式(。FCM不支持带按钮的推送通知

import { getMessaging, getToken, onMessage } from "firebase/messaging";
import { getDevice } from "framework7/lite-bundle";
function setupPushNotification(getTokenCallBack,onMessageCallBack) {

const device = getDevice();
if (device.cordova) {
FirebasePlugin.getToken((token) => getTokenCallBack(token));
FirebasePlugin.onMessageReceived((message) => {
if (message) {
onMessageCallBack && onMessageCallBack(message);
}
},function(error){
console.error(error);
});
}
}

然后设置整个过程,创建一个带有先前定义的按钮的本地通知对象:

cordova.plugins.notification.local.addActionGroup('yes-no', [
{ id: 'yes', title: 'Yes', foreground: false },
{ id: 'no', title: 'No', foreground: false }
])

setupPushNotification((deviceToken)=>{
//update device token on backend database
},

(message)=>{
//This is the onMessageReceived message
//Create a local notification for exaple using the local notification cordova plugin
cordova.plugins.notification.local.schedule({
title: "Test Title",
text: "Test Body",
actionGroupId: 'yes-no',
})

})

我正在使用这些cordova插件"cordova插件本地通知":"0.9.0β2";,"cordova插件firebasex":"14.2.1";

您几乎可以使用cordova做任何事情,这是任何本地应用程序都可以做的。尝试过cordova插件firebase消息吗?我已经能够在通知中添加一个带有发送按钮的聊天回复文本框。

您也可以参考如何将操作按钮添加到离子推送通知?

相关内容

  • 没有找到相关文章

最新更新