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());
});
如果需要,我可以提供任何其他代码或日志。
为了在 IOS 的后台/终止状态下完美接收 callKit 通知,您必须执行以下必要的操作:
我知道它的过程非常漫长,但事实确实如此。当我被要求在我的应用程序中集成呼叫通知时,我也非常失望,而且我必须在我的前端应用程序和后端上完成所有这些操作。
我只需配置 PushKit 即可将 iOS 从后台和终止状态唤醒。
注意:即使对于pushKit,我也必须通过flutter_call_kit传入包中存在的
getVoipToken()
函数为iOS设备创建一个令牌。
显然,如果您没有正确配置所有内容,Apple 将开始暂停您的 voip 通知并且不会发送。
要修复,我想你可以删除应用程序并重新安装