在使用 Flutter 的 iOS 中,在终止或后台状态下未收到 flutter_callkit_incoming 通知

问题描述 投票:0回答:3

Flutter 传入 Callkit 通知在我的 iOS 应用程序上的所有状态(前台/后台/终止)下都工作正常。

在 iOS 设备上问题是当我的应用程序处于后台或终止状态时,如果我在关闭或最小化应用程序后打开任何其他应用程序,我将停止在后台/终止状态下收到 callKit 通知。

我不知道哪个部分会导致此问题,即是来自我的代码还是 iOS 设备本身的问题。因为除了在关闭/最小化我的应用程序后打开另一个应用程序之外,我还在应用程序的所有状态下收到呼叫通知。

[注意:Android 应用程序中一切正常]

这是从云功能接收到接收者的静默通知。

  await admin.messaging().send({
    token: token_o,
    notification: {
    },
    data: {
      imageUrl: requesterImageUrl,
      chatRoomId: chatRoomId,
      screenName: 'voiceScreen',
      voiceCall: 'voiceCall',
      callerName: requesterName,
      callsDocId: callsDocId,
      senderId: requesterId,
    },
    android: {
        notification: {
            click_action: "android.intent.action.MAIN"
        },
    },
     apns: {
              headers: {
                apns_priority: "10",
              },
              payload: {
                aps: {
                  badge: 1
                },
                notification: {
                title: "iOVoiceCallNotification",
                body: {},
                                  },
                mutable_content: true,
                content_available : true,

              }
            }
  }).then(value => {
    functions.logger.log("Notification for AudioCall is sent to the Receiver");
  }).catch((e) => {
    functions.logger.log(e.toString());
  });

如果需要,我可以提供任何其他代码或日志。

flutter firebase dart apple-push-notifications
3个回答
2
投票

为了在 IOS 的后台/终止状态下完美接收 callKit 通知,您必须执行以下必要的操作:

  1. 为 IOS 实施 APN(Apple 推送通知)。因为当您在后台/终止状态发送 Firebase 通知时,iOS 设备不会唤醒手机并显示通话。 iOS 设备需要 APN 才能实现此目的。
  2. 如果您正在为 flutter 应用程序使用 flutter_callkit_incoming 包,请按照 PUSHKIT.md 中编写的说明进行操作。
  3. 配置您的后端(从您想要接收通知的位置)以发送 Firebase 和 APN 通知,具体取决于用户使用的设备。 (我建议您在 flutter 应用程序中注册 firebase 令牌时,将平台(例如“android”或“ios”)与设备令牌一起发送到后端。您也可以从 firebase 请求 IOS deviceToken。

我知道它的过程非常漫长,但事实确实如此。当我被要求在我的应用程序中集成呼叫通知时,我也非常失望,而且我必须在我的前端应用程序和后端上完成所有这些操作。


0
投票

我只需配置 PushKit 即可将 iOS 从后台和终止状态唤醒。

注意:即使对于pushKit,我也必须通过flutter_call_kit传入包中存在的

getVoipToken()
函数为iOS设备创建一个令牌。


0
投票

显然,如果您没有正确配置所有内容,Apple 将开始暂停您的 voip 通知并且不会发送。

要修复,我想你可以删除应用程序并重新安装

© www.soinside.com 2019 - 2024. All rights reserved.