Skip to content

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);
  }
});

权限处理流程

  1. 权限检查:使用 showAuthTip 检查电话权限
  2. 权限请求:引导用户完成电话权限授权
  3. 结果处理
    • 授权成功:继续执行原始 API 调用
    • 授权失败:调用 fail 回调,并返回错误信息

特殊处理

APP端

  • 使用 showAuthTip 请求电话权限
  • 在成功回调中检查权限状态,并根据 shouldShowRequestPermissionRationale 决定是否显示手动授权引导

小程序端

  • 小程序平台通常会在调用时自动申请权限
  • 添加了日志输出以便调试

H5端

  • 浏览器环境下的电话功能
  • 添加了日志输出以便调试

注意事项

  • 拦截器会确保调用链完整,即使在权限被拒绝时也会调用 fail 回调
  • APP端在权限被拒绝时会尝试显示手动授权引导
  • 小程序和H5环境下通常由系统自动处理权限申请
  • 拦截器会记录详细的权限授权过程日志,便于调试

基于 MIT 许可发布