更新记录

1.1.9(2023-06-15)

1 追加荣耀 是否开启录音检测 2 解决vivo 挂断事件返回2次事件

1.1.8(2023-04-09)

红米手机追加打开设置功能

1.1.7(2023-04-03)

1 追加红米检测 是否开启通话录音 2 解决部分型号双卡手机,拨打电话选卡阶段进行取消也会触发挂断回调

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 11.0 armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


插件使用前置

  • 此插件只提供了录音上传功能,不包含手机录音功能
  • 此插件只提供了录音上传功能,不包含手机录音功能
  • 此插件只提供了录音上传功能,不包含手机录音功能
  • 手机录音需要打电话时 开启录音 或者 手机设置界面 开启通话自动录音
  • 手机录音需要打电话时 开启录音 或者 手机设置界面 开启通话自动录音
  • 手机录音需要打电话时 开启录音 或者 手机设置界面 开启通话自动录音

安卓版本

  • 打开manifest.json -> app常用其他设置 -> minSdkVersion 输入23
  • "minSdkVersion" : 23

使用插件

  • 项目根目录 main.js 导入插件
if (plus.os.name.toLowerCase() == "android") {
    const call = uni.requireNativePlugin("zyjw-upload_call");
    Vue.prototype.$call = call
}
  • 获取权限(引导用户获取,可以在app.vue onLaunch 方法里面,打开app获取权限)

app.$call.permissionChecks(
        (ret) => {
            console.log(ret)
        })

ret:        
{
    "text": "permissionChecks 检测权限",
    "code": 0,
    "msg": "权限获取失败"
}
  • 初始化(确保用户已授权上面的权限)
app.$call.init({
            "filePath":"/Sounds/CallRecord", //电话录音文件路径 不同手机不一样,
            "scanFileType":"1", // 录音扫描方式 0 通过文件名 如华为(10010_20211111120000.m4a) 1 通过通话记录(有些录音文件的格式不固定可以使用这种方式)
            "scanFileTimeType": 0,//扫描时间匹配方式 0 通过最后修改时间  1 通过创建时间
            "timeSpan": 20, //误差值单位秒
            "uploadFileType":"0", //0 只有通过软件拨打的电话会上传  1 所有
            "delayMillis":1000, //延迟多少毫秒,手机性能差的会有延迟
            "isReissue":0,//是否补发 0否 1 是(当当前成功上传后,会 尝试把失败的也上传下)
            "host":"http://192.168.0.122:9801" //自己服务器地址 这个是我本地的演示
        },
        (ret) => { //通话状态监听回调函数
            console.log(ret)
        })

{ //电话挂断后回调返回,重点关注 callId
    code: 1,
    msg: "挂断",
    phone: "10010",
    callId: "kdlkdjjskkdskllkdsll",
    log: {} //通话记录
}
  • 拨打电话
app.$call.callPhone({
                "phone": "10010"
            },
            (ret) => {
                console.log(ret)
            })
  • 上传录音(电话挂断后调用)
app.$call.upload({
            "param":{ //上传到服务器的参数 根据自己的后端接口定 这里举例了两个
                "param1":"1",
                "param2":"2",
            },
            "callId":this.callId, // 电话挂断监听获取到的通话id
            "uploadUrl":"http://192.168.0.122:9801/call/upload", //上传录音的地址
        },
        (ret) => {
            console.log(ret)
        })
  • 获取最近100条录音上传记录
app.$call.getList(
            (ret) => {
                console.log(ret)
            })
  • 检测手机是否开启自动录音(目前支持 华为 小米 oppo vivo 一加 其他型号手机没有那么多测试机)
app.$call.checkAutoRecord((ret) => {
                console.log(ret)
            })
  • 跳转自动录音设置页面(目前支持 华为 小米 oppo vivo 其他型号手机没有那么多测试机)
app.$call.startRecordSet()
  • 获取手机信息
app.$call.getPhoneInfo((ret) => {
                console.log(ret)
            })
  • 获取日志文件路径
app.$call.getLogDir((ret) => {
                console.log(ret)
            })
  • 不同手机,录音文件及配置参数是不一样的 这里给个参考吧 复制的demo的配置
小米
{
    _uploadCall: app.$call,
    _host: "http://192.168.0.230:9801", //更换为自己的域名
    _filePath: "/MIUI/sound_recorder/call_rec", //建议后端提供配置信息,不同型号的手机,录音地址可能不一样, 前端获取手机型号 后端返回录音地址
    _scanFileType: "1", // 0文件名称扫描  1 时间匹配
    _scanFileTimeType: 0, //扫描时间匹配方式 0 通过最后修改时间  1 通过创建时间
    _timeSpan: 20,  // 匹配文件时间误差值(秒)
    _uploadFileType: "0", // 0 只有通过软件拨打的电话会上传  1 所有电话(不建议)
    _delayMillis: 1000, //延迟多少毫秒
    _isReissue:0, //是否补发 0否 1 是(当当前成功上传后,会 尝试把失败的也上传下)
    _isLog:0,//是否开启日志 0不开启 1 开启 日志损耗一定的性能 建议关闭 此参数是为插件作者协助排查问题追加
}

红米
{
    _uploadCall: app.$call,
    _host: "http://192.168.0.230:9801", //更换为自己的域名
    _filePath: "/MIUI/sound_recorder/call_rec", //建议后端提供配置信息,不同型号的手机,录音地址可能不一样, 前端获取手机型号 后端返回录音地址
    _scanFileType: "1", // 0文件名称扫描  1 时间匹配
    _scanFileTimeType: 1, //扫描时间匹配方式 0 通过最后修改时间  1 通过创建时间   红米手机特色
    _timeSpan: 61,  // 匹配文件时间误差值(秒)  红米手机记录是没有秒的 所以匹配误差需要大于1分钟
    _uploadFileType: "0", // 0 只有通过软件拨打的电话会上传  1 所有电话(不建议)
    _delayMillis: 3000, //延迟多少毫秒 低端手机建议设置稍微长一点,生成录音文件需要时间,性能越好这个值可以设置的越低
    _isReissue:0, //是否补发 0否 1 是(当当前成功上传后,会 尝试把失败的也上传下)
    _isLog:0,//是否开启日志 0不开启 1 开启 日志损耗一定的性能 建议关闭 此参数是为插件作者协助排查问题追加
}

华为
{
    _uploadCall: app.$call,
    _host: "http://192.168.0.230:9801", //更换为自己的域名
    _filePath: "/Sounds/CallRecord", //建议后端提供配置信息,不同型号的手机,录音地址可能不一样, 前端获取手机型号 后端返回录音地址
    _scanFileType: "1", // 0文件名称扫描  1 时间匹配
    _scanFileTimeType: 0, //扫描时间匹配方式 0 通过最后修改时间  1 通过创建时间
    _timeSpan: 20,  // 匹配文件时间误差值(秒)
    _uploadFileType: "0", // 0 只有通过软件拨打的电话会上传  1 所有电话(不建议)
    _delayMillis: 1000, //延迟多少毫秒
    _isReissue:0, //是否补发 0否 1 是(当当前成功上传后,会 尝试把失败的也上传下)
    _isLog:0,//是否开启日志 0不开启 1 开启 日志损耗一定的性能 建议关闭 此参数是为插件作者协助排查问题追加
}

有任何bug问题 请评论或者联系qq (1497701038) wx (q2342234)说明

隐私、权限声明

1. 本插件需要申请的系统权限列表:

"<uses-permission android:name=\"android.permission.INTERNET\" />", "<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" />", "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />", "<uses-permission android:name=\"android.permission.READ_CONTACTS\" />", "<uses-permission android:name=\"android.permission.READ_CALL_LOG\" />", "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\" />", "<uses-permission android:name=\"android.permission.CALL_PHONE\" />", "<uses-permission android:name=\"android.permission.WRITE_CALL_LOG\" />", "<uses-permission android:name=\"android.permission.PROCESS_OUTGOING_CALLS\" />"

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

1 此插件只提供了录音上传功能,不包含手机录音功能,手机录音需要打电话时 开启录音 或者 手机设置界面 开启通话自动录音, 插件将获取通过此插件拨打出去的电话录音文件,上传到插件使用者配置的服务器地址. 非插件拨打的电话(属于客户隐私),不会上传到服务器 2 插件适用于 to B 特定场景,如 员工服务回访电话.用于检查员工服务质量

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问