更新记录
1.0.0(2023-08-14)
android通话记录管理,增删改查。
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 12.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原生插件配置”->”云端插件“列表中删除该插件重新选择
调用数据
有限支持,因为没啥技术支持的。u7746@163.com 对应的权限请在宿主app进行统一管理。 为了插件健壮性,插件也会兜底判断申请相关权限。
1、查询通话记录
var testModule = uni.requireNativePlugin("u7746-PhonelibrayPluginModule");
let paramObjs = {};
paramObjs.startDate = "2023-08-01 00:00:00"; //查询开始日期请精确到秒
paramObjs.endDate = '2023-08-31 00:00:00'; //查询结束日期请精确到秒
testModule.searchCallLog(paramObjs,(ret) => {
//生成日程的id
console.log("tapCallLog", ret);
//ret为数组,具体结构如下
//type为业务类型1为权限类数据返回 2为通话记录相关数据
//code 1正常 非1失败
{
"type":"2",
"code":"1",
"msg":[
{
"type":"打入",
"id":"872",
"name":"未备注联系人",
"number":"075536661888",
"duration":"81秒",
"date":"2023-08-10 16:38:25"
}
]
}
});
2、新建通话记录
var testModule = uni.requireNativePlugin("u7746-PhonelibrayPluginModule");
let paramObjs = {};
paramObjs.number = "13800138000"; //通话记录的手机号
paramObjs.date = "2023-08-09 12:00:00"; //通话日期
paramObjs.duration = "60"; //通话时长
paramObjs.type = "1"; //1打入2打出3未接4语音信箱5拒接6黑名单
paramObjs.name = ""; //通话记录的姓名 对应手机通讯录里的名子
testModule.addCallLog(paramObjs,(ret) => {
console.log("taoAddCallLog", JSON.stringify(ret));
//ret具体结构如下
//type为业务类型1为权限类数据返回 2为通话记录相关数据
//code 1正常 非1失败
//msg 1成功 非1失败
{
"type":"2",
"code":"1",
"msg":"1"
}
});
3、修改通话记录
var testModule = uni.requireNativePlugin("u7746-PhonelibrayPluginModule");
let paramObjs = {};
paramObjs.id = "849" //查询方法返回的id
paramObjs.number = "13800138000"; //通话记录的手机号
paramObjs.date = "2023-07-27 12:00:00"; //通话日期
paramObjs.duration = "60"; //通话时长
paramObjs.type = "1"; //1打入2打出3未接4语音信箱5拒接6黑名单
paramObjs.name = ""; //通话记录的姓名 对应手机通讯录里的名子
testModule.updateCallLog(paramObjs,(ret) => {
console.log("updateCallLog", JSON.stringify(ret));
//ret具体结构如下
//type为业务类型1为权限类数据返回 2为通话记录相关数据
//code 1正常 非1失败
//msg 1成功 非1失败
{
"type":"2",
"code":"1",
"msg":"1"
}
});
4、删除通话记录
var testModule = uni.requireNativePlugin("u7746-PhonelibrayPluginModule");
let paramObjs = {};
paramObjs.number = "13804247861"; //当删除的手机号对应的通话记录 允许为空
paramObjs.id = 873; //查询方法返回的id
//id与number为or的关系。单纯以手机号删除侵略性太大,所以追加id为条件删除。两个条件不要同时为空
testModule.deleteCallLog(paramObjs,(ret) => {
console.log("updateCallLog", JSON.stringify(ret));
//ret具体结构如下
//type为业务类型1为权限类数据返回 2为通话记录相关数据
//code 1正常 非1失败
//msg 1成功 非1失败
{
"type":"2",
"code":"1",
"msg":"1"
}
});
4、申请权限相关返回说明
当宿主app没有判断权限时,调用所有方法插件也会判断。
check权限返回{"type":"1","code":"1","msg":"没有权限WRITE_CALL_LOG"}
用户操作同意或者拒绝
{"type":"1","code":"1","msg":"android.permission.WRITE_CALL_LOG:0"} msg 0表示同意