WebApp快捷打包
通话状态/通话录音
转到模块插件

敬告:此 DEMO 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,了解更多

JS-SDK 引用方式:

♦ 普通网页 script 方式加载:下载最新版 jsBridge-v20250715.zip,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;

♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package

准备

requestPermissions 请求权限

//请求手机通话状态、读取通话记录、读取外部存储权限
jsBridge.phoneState.requestPermissions(function(success, res) {
  if (success && res.granted) {
    alert("已授权");
  } else {
    alert("已拒绝,不再询问: " + res.neverAskAgain);
  }
});

config 配置

needAudio:

notificationTitle:

jsBridge.phoneState.config({
  //后台服务的状态栏通知标题(需要开启通知权限,减小 APP 被系统杀掉的概率)
  //修改通知标题后需要 removeListener 之后重新 setListener 才会生效
  notificationTitle: "{{config.notificationTitle}}",
  //是否需要返回通话录音
  //注意:APP 无法录制通话语音,而是读取系统的通话录音文件!!
  //可系统设置为通话自动录音(一般在拨号盘有设置菜单)或者电话接通后手动点击录音
  needAudio: {{config.needAudio}},
  //如果获取不了通话录音,这里可以指定一下录音文件所在目录
  //不同厂商的不同机型保存录音文件的目录可能不同
  //部分设备限制读取录音文件目录,所以仍有可能失败
  audioDirectories: [
    "/Music/Recordings/Call Recordings/",
    "/Sounds/CallRecord/",
    "/Recordings/",
    "/CallRecordings/",
    "/MIUI/sound_recorder/call_rec/"
  ]
}, function(success, res) {
  alert(success ? '成功' : '失败');
});

事件监听

setListener 设置监听器

• 如需接口调用事件,请设置此监听器;

jsBridge.phoneState.setListener(function(event, data) {
    switch (event) {
        // 响铃
        case "ringing": {
            break;
        }
        // 接通
        case "offHook": {
            break;
        }
        // 挂断
        case "idle": {
            //data.call 通话呼叫信息
            //data.call.number   对方电话号码
            //data.call.duration 通话时长(秒)
            //data.call.date     时间戳(毫秒)

            //当通话时长 data.call.duration > 0 时的通话录音:
            //data.audio 通话录音信息(config 接口需设置 needAudio: true 才会返回录音信息)
            //date.audio.path     文件路径
            //data.audio.name     名称
            //data.audio.date     时间戳(毫秒)
            //data.audio.base64Content 文件内容的 BASE64 编码
            //data.audio.error    读取录音文件失败时的错误信息
            break;
        }
    }
    //此函数仅用于显示回调参数在本 DEMO 页面上
    showResult({
        event: event,
        data: data
    });
});

//请拉到页面底部查看回调数据信息
$('html,body').animate({ scrollTop: $('#view').offset().top }, 500);

/**
回调参数说明:
event - 事件代码,字符串
data  - 事件数据,JSON 对象
**/

removeListener 移除监听器

//移除监听器,不会再收到回调通知
//在需要时可重新调用 setListener
jsBridge.phoneState.removeListener();

监听回调数据: