我必须在Agora的帮助下创建呼叫应用程序。当应用程序在前台是可以的,但我想接受调用时,应用程序是在后台或终止。我正在尝试使用Callkeep插件接受后台调用我通过FCM后台消息找到了一种方法,但我不知道如何实现IOS的解决方案,它没有FCM后台消息我尝试使用VOIP通知,但我不知道如何将它们发送到我的flutter应用程序我使用Firebase作为后端我需要安卓和IOS的解决方案由于
对于IOS,你将不得不实现一个服务器端脚本,它将在真正的VOIP呼叫进入之前向用户发送VOIP推送通知。据我所知,你不能为此使用Firebase。
请参阅https://developer.apple.com/documentation/pushkit/responding_to_voip_notifications_from_pushkit了解更多有关后台处理VOIP呼叫的变化。
另外,请参阅https://developer.apple.com/documentation/pushkit/responding_to_voip_notifications_from_pushkit了解更多关于在服务器端发送VOIP推送通知的信息。
这是给未来的人的。使用这个包:CallKit/CallKeep. 这个包真的很好用,而且设置起来很容易。我使用FCM呼叫通知,这里有一个例子:
Future<void> _fcmBackgroundHandler(RemoteMessage message) async {
await Firebase.initializeApp();
final FirebaseFirestore _firestore = FirebaseFirestore.instance;
print('Acho q isso chegou por aqui: ${message.data}');
//Random random = new Random();
PushNotificationData pushData =
PushNotificationData.fromJson(message.data);
if (message.data['action'] == "Incoming call") {
final callUUID = Uuid().v4();
final params = callKeepParams(pushData);
await FlutterCallkitIncoming.showCallkitIncoming(params);
var calls = await FlutterCallkitIncoming.activeCalls();
FlutterCallkitIncoming.onEvent.listen((event) {
print(event);
onCallKeepEventReceived(event, pushData);
});
return null;
}}
等待FlutterCallkitIncoming.showCallkitIncoming (params);启动callkepp/callkit模式。
FlutterCallkitIncoming将监听回调。
然后由你来启动Agora。io功能。我这样做,每当我改变我的路线到一个特定的页面(会议页面),所有的Agora。IO函数启动。每当我离开书页时,阿古拉。IO被破坏了。当然,我也使用了getX,所以结果可能有所不同。对不起,我的英语不好。我希望对你有所帮助。