iOS - 触发传出VOIP呼叫单击本机iOS中的呼叫者最近呼叫表视图

时间:2018-01-19 10:14:48

标签: ios swift voip url-scheme callkit

我已经为我的应用程序实现了CallKit,通过使用WebRTC在我们的应用程序中触发/接收音频和视频呼叫。哪个无缝地工作,没有任何问题。

我看到有三种方法可以从Call Kit触发呼叫。

  1. 在应用内执行互动
  2. 使用支持的自定义网址方案打开链接
  3. 使用Siri发起VoIP通话
  4. 截至目前,我没有要求使用Siri发起呼叫但我们需要在用户点击本机iOS最近呼叫屏幕中的任何单元格时启动呼叫,然后该屏幕将路由到我们的应用程序并触发外出电话。

    此外,当用户呼叫其他用户(如receiverID等)时,我们的应用程序包含很少的元数据。因此,当用户错过来自其他用户的呼叫时,我需要存储此元数据,我需要在用户触发呼叫时使用所有这些元数据点击iOS最近通话屏幕的未接来电列表。

    我正在浏览Apple提供的CallKit“Speakerbox”的示例应用程序。我发现他们正在使用自定义URL方案,就像我们用于iOS应用程序的DeepLinking一样。

    所以我需要一些建议是否可以使用URL方案实现这一点。如果是这样,我如何将元数据(自定义对象)存储在CXHandle对象中。

1 个答案:

答案 0 :(得分:4)

在我这里贴出相同的答案:Refer

验证remoteHandle和supportedHandleTypes,两者都应符合您的要求。

callUpdate.remoteHandle = [[CXHandle alloc] initWithType:CXHandleTypeGeneric value:[NSString stringWithFormat:@"%@", phoneno]];
configuration.supportedHandleTypes = [NSSet setWithObjects:[NSNumber numberWithInteger:CXHandleTypeGeneric],[NSNumber numberWithInteger:CXHandleTypePhoneNumber], nil];

如果句柄不匹配,您就无法处理NSUserActivity。

实施此方法以获得回调

- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray * _Nullable))restorationHandler {}