我目前正在研究Agora.io服务,该服务提供给我们
音频、视频、一对一和广播通信
在给定的示例的帮助下,我成功地实现了这些功能,并成功地添加了信令模块。问题是信令呼叫必须是主动的,才能访问它的所有功能,现在我想在应用程序关闭时访问所有信令功能,比如whatsapp和其他类型的应用程序,一种解决方案是提供信令类服务,但这不是专业的解决方案。
我想要一个有效的解决方案
发布于 2018-05-07 17:04:46
这不能用任何第三方API来完成。这是苹果和谷歌提供的系统级功能。您必须使用CallKit (用于iOS)或ConnectionService (用于Android)来实现此功能。
发布于 2019-02-13 17:25:20
几天前我也做过同样的事。
对于iOS,您可以通过以下方式使用PushKit和CallKit:
.1。启用后台模式并检查voip。
登记推送工具如下:-
func registerPushkitToken() -> Void {
pushRegistry = PKPushRegistry.init(queue: DispatchQueue.main)
pushRegistry?.delegate = self
pushRegistry?.desiredPushTypes = [.voIP]
}
3.实现令牌功能
func pushRegistry(_ registry: PKPushRegistry, didUpdate pushCredentials:
PKPushCredentials, for type: PKPushType) {
let tokenChars = pushCredentials.token.hexString()
}
实现CXProviderDelegate函数
func providerDidReset(_ provider: CXProvider) {
print("Function: \(#function), line: \(#line)")
sessionPool.removeAll()
}
func provider(_ provider: CXProvider, perform action: CXStartCallAction) {
print("Function: \(#function), line: \(#line)")
guard let session = pairedSession(of:action.callUUID) else {
action.fail()
return
}
let callUpdate = CXCallUpdate()
callUpdate.remoteHandle = action.handle
callUpdate.hasVideo = true
callUpdate.localizedCallerName = callDetails.dispalyName;
callUpdate.supportsDTMF = false
provider.reportCall(with: action.callUUID, updated: callUpdate)
delegate?.callCenter(self, startCall: session)
action.fulfill()
}
你也可以参考我这里的帖子。how to integrate Callkit with Agora VOiP in swift 4 iOS?
https://stackoverflow.com/questions/50175266
复制相似问题