如何在迅速4的iOS与集市VOIP Callkit集成?

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

我想苹果Callkit与集市在VOIP迅速4的iOS整合。

请给任何建议,我怎么能做到这一点。

iphone swift3 callkit agora.io
1个回答
1
投票

为了整合网络电话,你将不得不同时使用,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 })
    }
  1. 转到开发人员门户和生成的VoIP服务证书并进行安装。
  2. 使下功能推送通知。

这是在视图中的基本代码。你将不得不增加的情况下,模拟来电和其他自定义。我希望这将有助于你进一步移动。

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