更新记录
3.0(2024-05-27) 下载此版本
修复已知问题
2.9(2023-07-14) 下载此版本
1.优化呼叫设备名称缓存问题 2.修复来电铃声一直响的问题
2.8(2023-07-11) 下载此版本
1.支持配置呼叫对方不在线的提示 2.autoStartFunctionEnable设置为flase时,不去获取最近来电消息 3.autoStartFunctionEnable设置为false后,再设置为true后自动初始化服务,登录 4.autoStartFunctionEnable设置为false后,如果去呼叫设备,则自动初始化服务,登录
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 | 适用版本区间:9 - 14 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在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原生插件配置”->”云端插件“列表中删除该插件重新选择
接口函数:
initDMVPhoneSDK
[功能] 初始化DMVPhoneSDK, 音视频功能需先初始化才可使用 返回值详细请参见《附表一》。
[函数] initDMVPhoneSDK(String domain);
[参数说明]
domain: 应用服务器地址。 正式服:http://app-api.thinmoo.com | 测试服:http://app-api.test.thinmoo.com
当有平台对接时,可以根据当前APP应⽤使⽤的应⽤服务器地址。对讲服务器地址由应⽤服务器分配。新的⾳视频对讲SDK实现了由应⽤服务器动态分配下发⾳视频服务器地址给
新的⾳视频对讲SDK,让APP登录账号能动态登录⾳视频对讲服务器,解决卡顿的问题。
[示例]
const VphoneModule = uni.requireNativePlugin("DoorMaster-VPhone-Plugin")
VphoneModule.initDMVPhoneSDK(domain)
loginVPhoneServer
[功能] 登录音视频服务器,登录后才能呼叫、接收其他账户呼叫。返回值详细请参见《附表一》。 登录服务器的地址为初始化时传入的地址。
[函数] loginVPhoneServer(JSON json, JSCallback callback);
[参数说明]
json⾥的key为以下四个
{ String } account app账号
{ String } appId: 分配的appId
{ String } appSecret 分配的appSecret
{ String } vphoneServerIp ⾳视频服务器登录IP (独⽴部署⾳视频服务器时必传)
{ String } vphoneServerPort ⾳视频服务器登录端⼝ (独⽴部署⾳视频服务器时必传)
{ Number } loginType 登录⾳视频服务器的登录类型,传1表示account为⼿机号,传2表示account为设备序列号
{ Function } callback 回调函数
callback回调函数参数
{ Number } errorCode 登录⾳视频服务器的状态码,返回值详细请参⻅《附表⼀》。
{ String } errorMsg 登录⾳视频服务器的状态⽂本描述,以《附表⼀》为准。
[示例]
const VphoneModule = uni.requireNativePlugin("DoorMaster-VPhone-Plugin");
const json = {
"account": "app账号",
"appId": "分配的appId", // 不同平台的APP对应⼀个分配的appId
"appSecret": "分配的appSecret", // 不同平台的APP对应⼀个分配的appSecret
// loginType = 1,account为⼿机号。
// loginType = 2,account设备序列号。
// 呼叫时呼叫端和被呼叫端都需登录⾳视频服务器
"loginType": 1,
""
};
VphoneModule.loginVPhoneServer(json, (result) => {
// callback(res);
uni.showModal({
title: "提示",
content: JSON.stringify(result),
success: () => {
console.log(`登录结果: ${JSON.stringify(result)}`);
}
});
});
callAccount
[功能] 呼叫其他账号,登录后才能呼叫、接收其他账户呼叫。返回值详细请参见《附表一》。
[函数] callAccount(String callAccount, Integer callType, String account, String devName, final JSCallback callback);
[参数说明] { String } callAccount 呼叫对象的⾳视频账号{ Number } callType 呼叫对象的⾳视频账号的类型。 1:⽤户帐号(呼叫⽤户) 2:设备帐号(呼叫设备)
{ String } account ⾃⼰的⾳视频账号
{ String } devName android⽅⾯为了和ios⽅⾯接⼝参数⼀致的⼀个参数,传空字符串即可
{ Function } callback 回调函数
callback回调函数参数
{ Number } errorCode 呼叫其他账号后的状态码,返回值详细请参⻅《附表⼀》。
{ String } errorMsg 呼叫其他账号后的状态⽂本描述,以《附表⼀》为准。
[示例]
const VphoneModule = uni.requireNativePlugin("DoorMaster-VPhone-Plugin");
VphoneModule.callAccount(callAccount, callType, account, devName,(result) => {});
getPermissionStatus
[功能] 判断应用的权限情况,会返回应用的权限情况("authorized"/"unauthorized"/"unknown") //为已授权,未授权,未知,因为部分机型无法判断权限情况,所以会返回未知
和权限是否能通过代码跳转到开启页面(true/false) //根据机型品牌判断能否对应跳转到权限开启界面
和手机品牌。 //返回手机品牌
[函数] getPermissionStatus(final JSCallback Callback); [参数说明]
{ Function } callback 回调函数
callback回调函数参数
{ Number } errorCode 判断应⽤的权限情况后的状态码,返回值详细请参⻅《附表⼀》。
{ String } errorMsg 判断应⽤的权限情况后的状态⽂本描述,以《附表⼀》为准。
[示例]
const VphoneModule = uni.requireNativePlugin("DoorMaster-VPhone-Plugin");
VphoneModule.getPermissionStatus((result) => {
console.log(`判断应⽤的权限情况: ${JSON.stringify(result)}`);
});
openPermission
[功能] 打开应用的某个权限,如自启动,悬浮窗,锁屏显示
[函数] openPermission(String permission);
[参数说明] permission: 权限名;//接受 "auto_start" ,"floating_window","lock_screen_display"
[示例]
const VphoneModule = uni.requireNativePlugin("DoorMaster-VPhone-Plugin")
VphoneModule.openPermission("Auto_start");
setLogSwitch
[功能] 打开音视频日志开关
[函数] setLogSwitch(boolean switch);
[参数说明] switch: 设置开关情况;
[示例]
const VphoneModule = uni.requireNativePlugin("DoorMaster-VPhone-Plugin")
VphoneModule.setLogSwitch(switch);
setPushToken
[功能]设置推送token到服务器,此⽅法需要集成插件 DoorMaster-Push -Plugin 或者 DoorMaster -Push -Plugin -google (海外⾕歌版) 才能获取到pushToken,然后再调⽤setPushToken⽅法上传到服务器
[函数] setPushToken(String brand, String token)
[参数说明]
{ String } brand ⼿机品牌
{ String } token 推送token
[示例]
const VphoneModule = uni.requireNativePlugin("DoorMaster-VPhone-Plugin");
const brand = "⼿机品牌", token = "推送token";
VphoneModule.setPushToken(brand, token);
receivePushNotification
[功能] 将推送接收到的消息传入插件进行处理,此方法需要集成插件 DoorMaster-Push -Plugin 或者 DoorMaster -Push -Plugin -google (海外谷歌版),同时音视频类消息体 需要有 “dmvphone_push_type” 这个key;
[函数] receivePushNotification(String message)
[参数说明] { String } message 消息体本身 // JSON 字符串格式
[示例]
const VphoneModule = uni.requireNativePlugin("DoorMaster-VPhone-Plugin");
const messageInfo = { "xxx": "xxx", "yyy": "yyy" };
VphoneModule.receivePushNotification(JSON.stringify(messageInfo));
checkToStartIncomingActivity
[功能] 判断当前账号 在服务器上是否有来电消息,需要在App.vue 的onshow方法调用,为了解决有时候app后台弹出推送时,点击推送不会显示通话界面的情况。
[函数] checkToStartIncomingActivity()
[参数说明] 无
[示例]
const VphoneModule = uni.requireNativePlugin("DoorMaster-VPhone-Plugin");
VphoneModule.checkToStartIncomingActivity();
三. 附录 附表一
返回值 | 返回值说明 |
---|---|
0 | 成功 |
1 | 失败 |
2 | Token错误 |
3 | 登录数据处理失败 |
4 | 网络错误 |
601 | 音视频服务已销毁 |
802 | 参数cameraId错误 |
803 | 参数videoRotation错误,角度错误:角度范围0~360 |
804 | 参数videoSize错误,需传入字符串:720p、vga、qvga、qcif |
805 | 未初始化错误 |
806 | 未登录错误 |
807 | 不在通话状态 |
808 | 不支持的音视频格式 |
809 | Context为空 |
811 | 无效的心跳间隔 |
812 | 本地端口错误 |
820 | Service not ready |
821 | 呼叫账号未绑定视频通讯帐号 |
822 | 登录账号未绑定视频通讯帐号 |
823 | CPU架构不支持 |
824 | 参数错误 |
825 | AccessToken为空 |
826 | 开门超时 |
999 | 未知错误 |