我想苹果Callkit与集市在VOIP迅速4的iOS整合。
请给任何建议,我怎么能做到这一点。
为了整合网络电话,你将不得不同时使用,callKit和PushKit。
CallKit将用于呼叫转换过程中,显示本地通话屏幕和处理器,同时Pushkit将被用来调用的应用程序,当应用程序被杀害。
它易于集成: -
启用的info.plist背景模式,并检查选项“应用程序提供IP语音服务。”进口Callkit在视图控制器的viewDidLoad / anyclass的任何init方法,你会用它来实现CXProviderDelegate功能。通过这个,你会配置呼叫对象,当正在添加中的呼叫报告,接受的行为,拒绝操作等。
实现以下功能:
func providerDidReset(_ provider: CXProvider) {
}
func provider(_ provider: CXProvider, perform action: CXAnswerCallAction) {
action.fulfill()
}
func provider(_ provider: CXProvider, perform action: CXEndCallAction) {
action.fulfill()
}
现在进口Pushkit和实施PKPushRegistryDelegate功能。
一。)配置pushkit这样
let registry = PKPushRegistry(queue: nil)
registry.delegate = self
registry.desiredPushTypes = [PKPushType.voIP]
湾)实施pushkit令牌功能。您可能需要更新到服务器提供VOIP推送通知
func pushRegistry(_ registry: PKPushRegistry, didUpdate pushCredentials: PKPushCredentials, for type: PKPushType) {
print(pushCredentials.token.map { String(format: "%02.2hhx", $0) }.joined())
}
C。现在,当您收到来电通知,实现这个功能
func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) {
let config = CXProviderConfiguration(localizedName: "App name")
config.iconTemplateImageData = UIImagePNGRepresentation(UIImage(named: "any image name")!)
config.supportsVideo = true;
let provider = CXProvider(configuration: config)
provider.setDelegate(self, queue: nil)
let update = CXCallUpdate()
update.remoteHandle = CXHandle(type: .generic, value: "Caller name")
update.hasVideo = true
provider.reportNewIncomingCall(with: UUID(), update: update, completion: { error in })
}
这是在视图中的基本代码。你将不得不增加的情况下,模拟来电和其他自定义。我希望这将有助于你进一步移动。