[英]cordova FCM push notification on background (Android)
有没有人实际使用 FCM - FireBase Cloud Messaging 创建设备推送通知,其中包含在应用程序处于后台/关闭时运行的交互式操作按钮?
目标是让用户能够对 WhatsApp、Messenger 等通知做出反应……
该应用程序是 cordova 所以任何有这方面经验的人都会很棒。
我已经完成所有 FCM 设置并且后端正常工作。 我已经可以触发一个简单的通知“title+body+icon/message”
根据 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);
});
}
}
然后设置整个过程,使用先前定义的按钮创建本地通知 object:
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-plugin-local-notification": "^0.9.0-beta.2", "cordova-plugin-firebasex": "^14.2.1"
您几乎可以使用 cordova 执行任何本机应用程序可以执行的任何操作。 曾经尝试过 cordova-plugin-firebase-messaging 吗? 我已经能够在通知中添加带有发送按钮的聊天回复文本框。
您还可以参考如何将操作按钮添加到离子推送通知?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.