更新记录
1.0.0(2024-04-19)
发布插件
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:6.0 - 14.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原生插件配置”->”云端插件“列表中删除该插件重新选择
概述
- 支持权限申请和检查
- 支持后台服务监听通话状态实时回调通话录音文件信息
- 支持获取系统通话记录
- 支持获取和删除录音记录
- 支持用户主动设置录音文件检索路径
- 支持默认设置录音文件检索路径
- 支持主动获取指定路径下的录音文件列表
- 支持删除文件
- 支持检查电话录音设置和打开电话录音设置
- 支持android11以上打开所有文件权限
温馨提示 如何调用插件
const plugin = uni.requireNativePlugin('uniplugin-CallInterceptAudio'); var globalEvent = uni.requireNativePlugin('globalEvent');
通话录音回调
onLoad() {
//通话录音结束监听回调
const _this = this;
globalEvent.addEventListener('recordAudioCallBack', function(e) {
//这里会回调手机号,录音文件路径,通话类型 1:主动拨电话 0:接听电话
_this.result = JSON.stringify(e);
// 调用接口getCallRecordAudio查询录音文件->业务根据返回的路径上传->
// -->上传成功后执行删除调用接口delCallRecordAudio(这里是删除本地数据缓存,若需要删除音频文件可使用uniapp提供的文件删除接口进行删除)
// plugin.getCallRecordAudio({},
// (ret) => {
// _this.result = JSON.stringify(ret);
// })
});
},
检查权限
const _this = this;
plugin.checkPermissions({},
(ret) => {
_this.result = JSON.stringify(ret);
})
申请权限
const _this = this;
plugin.applyPermissions({},
(ret) => {
_this.result = JSON.stringify(ret);
})
android11以上打开所有文件权限
const _this = this;
plugin.openExternalStorageSetting((ret) => {
_this.result = JSON.stringify(ret);
})
检查通话录音设置
const _this = this;
plugin.checkOpenRecord({},
(ret) => {
_this.result = JSON.stringify(ret);
})
打开通话录音设置
const _this = this;
plugin.openRecord({},
(ret) => {
_this.result = JSON.stringify(ret);
})
启动通话监听后台服务,实时回调录音文件
const _this = this;
plugin.startRecordAudioService({},
(ret) => {
_this.result = JSON.stringify(ret);
})
停止通话监听后台服务
const _this = this;
plugin.stopRecordAudioService({},
(ret) => {
_this.result = JSON.stringify(ret);
})
获取通话记录
const _this = this;
plugin.getCallPhoneLog({},
(ret) => {
_this.result = JSON.stringify(ret);
})
获取通话录音记录
const _this = this;
plugin.getCallRecordAudio({},
(ret) => {
_this.result = JSON.stringify(ret);
})
删除通话录音记录
const _this = this;
plugin.delCallRecordAudio({},
(ret) => {
_this.result = JSON.stringify(ret);
})
用户主动设置录音路径
const _this = this;
plugin.setRecordAudioPath({
recordFilePath: _this.recordPath,
},
(ret) => {
_this.result = JSON.stringify(ret);
})
获取用户主动设置的录音路径
const _this = this;
plugin.getRecordAudioPath({},
(ret) => {
_this.result = JSON.stringify(ret);
})
默认设置录音路径数组
const _this = this;
var path = Array();
path.push("/sdcard/Record/Call")
path.push("/sdcard/Music/Recordings/Call Recordings")
plugin.setRecordAudioPathArray({
recordFilePath: path,
},
(ret) => {
_this.result = JSON.stringify(ret);
})
获取默认设置录音路径数组
const _this = this;
plugin.getRecordAudioPathArray({},
(ret) => {
_this.result = JSON.stringify(ret);
})
获取最新的通话录音文件
const _this = this;
plugin.getLatestRecordAudioFile({
limit: '10', //获取最多条数
fileDir: '/sdcard/Music/Recordings/Call Recordings'
},
(ret) => {
_this.result = JSON.stringify(ret);
})
获取系统信息
const _this = this;
plugin.getSystemInfo({
},
(ret) => {
_this.result = JSON.stringify(ret);
})
删除文件
const _this = this;
plugin.delFile({
filePath: '录音文件路径'
},
(ret) => {
_this.result = JSON.stringify(ret);
})