繁体   English   中英

cordova 后台 FCM 推送通知 (Android)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM