更新记录
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:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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 开启 日志损耗一定的性能 建议关闭 此参数是为插件作者协助排查问题追加
}