iOS应用配置tel URL Scheme后未出现在号码拨打建议列表如何解决
解决iOS通话应用未出现在系统拨打建议列表的方案
仅在项目中配置tel类型的URL Schemes无法满足系统拨打建议列表的准入要求,iOS对通话类应用的唤起识别依赖系统级的Intent声明和扩展配置,具体解决步骤如下:
步骤1:添加系统要求的扩展Target
- 打开Xcode项目,给主应用新增
Call Directory Extension类型的Target,该扩展是iOS识别通话类应用的核心标识,无需复杂业务实现,保证正常编译即可 - 继续新增
Siri Intent Extension类型的Target,勾选支持INStartAudioCallIntent、INStartCallIntent两个系统通话意图,告知系统你的应用具备发起通话的能力
步骤2:完善Info.plist配置
- 在主应用的Info.plist中添加
LSApplicationQueriesSchemes数组,新增tel项,声明应用需要调用tel相关能力的权限 - 打开Siri Intent Extension的Info.plist,在
NSExtension->NSExtensionAttributes->IntentsSupported数组中,确认已添加INStartAudioCallIntent、INStartCallIntent的完整类名
步骤3:实现意图处理逻辑
- 在Siri Intent Extension中实现
INStartCallIntentHandling协议的对应方法,接收系统传入的手机号码参数,唤起主应用完成后续拨打逻辑即可
步骤4:验证配置效果
- 卸载设备上的旧版本应用,重新编译安装新版本
- 打开系统备忘录输入任意手机号,点击或长按手机号查看弹出的操作菜单,确认你的应用已出现在拨打选项列表中
注意:iOS13及以上系统仅需适配
INStartCallIntent即可,低于iOS13的版本需要额外兼容INStartAudioCallIntent。若你的应用仅支持语音通话,无需添加视频通话相关的意图配置。
内容的提问来源于stack exchange,提问作者fillsondy
相关产品推荐
相关产品推荐

