我有一个问题(但不是真的)与callkit.
我在我的应用程序中实现了callkit,它运行良好.我可以第二次打电话给我的应用程序和callkit,向我提供结束和接受,拒绝或保留和接受的选项.如果我正在进行蜂窝电话(gsm)呼叫并且我在我的应用上接听电话也是如此.但是当我在应用程序调用(在callkit上)并获得蜂窝(gsm)调用时,我只获得2个选项:拒绝或结束并接受.
知道为什么吗?或者我如何获得所有3个选项?
static var providerConfiguration: CXProviderConfiguration {
var providerConfiguration: CXProviderConfiguration
providerConfiguration = CXProviderConfiguration(localizedName: "app name")
providerConfiguration.supportsVideo = false
providerConfiguration.maximumCallsPerCallGroup = 1
providerConfiguration.maximumCallGroups = 3
providerConfiguration.supportedHandleTypes = [.phoneNumber]
return providerConfiguration
}
Run Code Online (Sandbox Code Playgroud)
我已实施:
providerDidReset,
CXStartCallAction,
CXAnswerCallAction,
CXEndCallAction,
CXSetHeldCallAction,
CXSetMutedCallAction,
timedOutPerforming action,
didActivate audioSession,
didDeactivate audioSession.
Run Code Online (Sandbox Code Playgroud)
在我的app委托中,我有检查useractivity的功能.我把断点在所有的功能,但没有被调用显示的话蜂窝(GSM)调用视图前.
我用Google搜索但无法找到解决方案.据我所知,callkit工作正常.
Meh*_*kar -1
当您CXCallUpdate在调用之前将对象发送到 CallKit 时,请确保将supportsHolding值保留为true。
我的CXCallUpdate看起来像下面这样:
let callHandle = CXHandle(type: .phoneNumber, value: handle)
let callUpdate = CXCallUpdate()
if userName != nil{
callUpdate.localizedCallerName = userName;
}
callUpdate.remoteHandle = callHandle
callUpdate.supportsDTMF = true
callUpdate.supportsHolding = true
callUpdate.supportsGrouping = false
callUpdate.supportsUngrouping = false
callUpdate.hasVideo = false
Run Code Online (Sandbox Code Playgroud)
上述不同属性的含义:
localizedCallerName= 如果您想在系统的呼叫屏幕上显示用户的姓名,否则将显示基于句柄类型的电话号码/电子邮件
supportsDTMF= 在系统主屏幕上,如果您想允许在呼叫运行时输入键盘号码,如果您这样做false,键盘选项将被禁用。
supportsHolding= 如果您希望保持您的呼叫,当触发其他呼叫时,请保留此属性true
supportsGrouping= 如果您想允许电话会议(在通话屏幕中启用合并通话选项),则保留此一项true
supportsUngrouping= 与上一个相反,在呼叫合并(电话会议)后,应允许其取消分组。
hasVideo= 如果您支持视频通话,系统会自动为您启动摄像头。
@Redssie,如果需要任何进一步的帮助,请告诉我Callkit。
| 归档时间: |
|
| 查看次数: |
925 次 |
| 最近记录: |