外观
权限与后台来电
本页面向 Flutter Android/iOS 通话组件,说明应用权限、系统来电与后台配置。宿主负责证书、签名、推送标识和用户授权,SDK 负责通话状态与媒体操作。
Android
| 能力 | 宿主关注点 |
|---|---|
| 语音 | 麦克风运行时授权 |
| 视频 | 摄像头与麦克风授权 |
| 后台/锁屏提示 | 通知权限、通道、系统允许的来电展示方式 |
| 持续通话 | 对应前台服务配置与运行条件 |
| 蓝牙音频 | Android 12+ 的可选蓝牙连接授权 |
插件声明原生能力,宿主在用户执行对应操作时申请运行时权限。蓝牙授权被拒绝时保留听筒/扬声器选项,权限申请限定在所用功能范围内。
厂商 Push 的应用配置与设备注册由宿主维护。使用默认 UIKit 可复用已有权限提示;自定义 UI 则需完成授权、拒绝处理与设备刷新。
iOS
在宿主 Info.plist 中按实际用途提供摄像头和麦克风说明,并配置所需的后台模式、推送能力、Bundle ID、签名与描述文件。
使用默认 UIKit 的权限处理方式时,在现有 Podfile 中合并相机与麦克风权限宏;使用相册入口时同步配置相册权限。保留已有构建设置,并使权限宏与 Info.plist 用途说明对应。
VoIP Token 与普通 APNs Token 分别登记。启用系统来电时,同步处理系统来电报告与应用内通话页面的状态。
冷启动恢复
冷启动时,宿主先恢复业务登录和 IM Session,再消费原生层接收的来电或接听动作,并按通话 ID 去重。
处理通知前校验服务端通话状态;邀请已过期或取消时,展示通话已结束。
平台差异
Web、Electron、uni-app 的权限、通知与后台行为按各自平台配置。微信小程序仅提供 IM 组件,不提供实时音视频通话;uni-app iOS 提供前台通话,不包含 CallKit、PushKit 和后台/锁屏来电。完整范围见平台矩阵。
上线检查
按已启用的来电与权限功能,在目标设备检查重新授权、通知设置、前后台切换、锁屏、冷启动恢复、耳机/蓝牙切换和连续重拨,以及结束后的麦克风、摄像头与系统音频释放。