makePhoneCall 拦截器
makePhoneCall
拦截器用于处理拨打电话前的权限检查和授权流程,确保用户在使用电话功能前已获得相应权限。
功能描述
该拦截器会自动检查用户是否已授予电话权限,并在未授权时引导用户完成授权流程。支持以下功能:
- 自动检查电话权限状态
- 引导用户完成电话权限授权
- 处理权限被拒绝的情况
- 提供手动授权引导
平台支持
平台 | 支持情况 | 备注 |
---|---|---|
APP-PLUS | ✅ 支持 | 需要电话权限 |
MP | ✅ 支持 | 小程序环境下的电话权限 |
H5 | ✅ 支持 | 浏览器环境下的电话功能 |
使用方法
typescript
import { makePhoneCallInterceptor } from "uni-toolkit/interceptors";
// 在应用入口处安装拦截器
app.use(makePhoneCallInterceptor);
// 正常调用uni.makePhoneCall,拦截器会自动处理权限
uni.makePhoneCall({
phoneNumber: "10086",
success: () => {
console.log("拨打电话成功");
},
fail: (err) => {
console.error("拨打电话失败", err);
}
});
权限处理流程
- 权限检查:使用
showAuthTip
检查电话权限 - 权限请求:引导用户完成电话权限授权
- 结果处理:
- 授权成功:继续执行原始 API 调用
- 授权失败:调用
fail
回调,并返回错误信息
特殊处理
APP端
- 使用
showAuthTip
请求电话权限 - 在成功回调中检查权限状态,并根据
shouldShowRequestPermissionRationale
决定是否显示手动授权引导
小程序端
- 小程序平台通常会在调用时自动申请权限
- 添加了日志输出以便调试
H5端
- 浏览器环境下的电话功能
- 添加了日志输出以便调试
注意事项
- 拦截器会确保调用链完整,即使在权限被拒绝时也会调用
fail
回调 - APP端在权限被拒绝时会尝试显示手动授权引导
- 小程序和H5环境下通常由系统自动处理权限申请
- 拦截器会记录详细的权限授权过程日志,便于调试