handleBannerAccept method
横幅接听按钮被点击(由 iOS 原生通过方法通道回调)
Implementation
Future<void> handleBannerAccept() async {
CallKitUILog.i(_tag, 'CallManager handleBannerAccept');
_bannerIsActive = false;
// 先申请权限,再接听,权限拒绝则拒绝来电
final permissionResult = await _runtimeAdapter.requestPermissions(
CallState.instance.callType,
);
if (permissionResult != PermissionResult.granted) {
_runtimeAdapter.stopRing();
await reject();
return;
}
final result = await accept();
if (result.code == 0) {
// 初始化摄像头和音频设备状态,确保 isCameraOpen 在页面打开前已设置正确
// 否则 onPlatformViewCreated 里的 openCamera 条件判断会失败,导致本地画面不显示
initAudioPlayDeviceAndCamera();
_enterCallingPage('banner_accept');
} else {
// 接听失败(如断网),立即停止铃声并挂断,避免铃声一直响
await _runtimeAdapter.stopRing();
await reject();
}
}