微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flutter - 后台通知在 iOS 中不起作用

如何解决Flutter - 后台通知在 iOS 中不起作用

我正在 Flutter 中创建一个公共聊天应用,当我触发方法 admin.messaging().send(payload) 来自我的 Cloud Function。

这是我在 Cloud Function 中的有效负载

var payload = {
  notification: {
    title: `My Title`,body: `My message`,},android: { priority: "high" },apns: {
    payload: {
      aps: {
        contentAvailable: true,headers: {
      "apns-push-type": "background","apns-priority": "10","apns-topic": "io.Flutter.plugins.firebase.messaging",// bundle identifier
    },topic: `mytopic`,};

我尝试了一堆不同的有效载荷:

  • 我尝试了通知 + 数据
  • 我只尝试了数据(没有通知)(在这种情况下,我必须在本地显示通知,但它不起作用,因为函数 FirebaseMessaging.onBackgroundMessage 从未被调用
  • 我尝试将“apns-priority”更改为 5
  • 我尝试使用令牌而不是主题

我仔细设置了所有我需要配置的东西,感谢官方文档: https://firebase.flutter.dev/docs/messaging/usage/

我还检查了 Github 问题,例如: 104161125988164443004097

什么是有效的:

  • Android 和 iOS 上的后台前台通知,从 Firebase 控制台发送时(在“云消息传递”部分)
  • 仅限 Android 上的后台前台通知,当从 Cloud Function 发送时
  • iOS 上的前台通知,当从 Cloud Function 发送时

什么不起作用:

  • iOS 上的后台通知从 Cloud Function 发送时
  • 当应用终止时,它无法正常工作。

解决方法

我终于解决了这个问题! ?

我只是删除了负载中的 import mmap import io with open("15.jpg",mode="rb") as file_obj: with mmap.mmap(file_obj.fileno(),length=0,access=mmap.ACCESS_READ) as mmap_obj: text = mmap_obj.read() print(text) final = str(text).replace(r"\x12",r"\x68") print() print(final) 行。 现在它正在工作。

看来 "apns-push-type": "background" 行也没有用。

这是我的最终有效载荷:

"apns-topic"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。