更新记录

1.0.8(2024-09-02)

修复无法搜索的bug

1.0.7(2024-07-12)

完善md文档说明,添加代码示例


平台兼容性

Android Android CPU类型 iOS
适用版本区间:9.0 - 14.0 armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 适用版本区间:12 - 17

原生插件通用使用流程:

  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原生插件配置”->”云端插件“列表中删除该插件重新选择


海康SDK

提供方法和全局回调

  1. SADP_Start_V40 开始搜索,触发搜索回调 find_device
  2. SADP_Stop 停止搜索
  3. SADP_Clearup 清理搜索,不建议使用,海康这个逻辑有问题
  4. SADP_ActivateDevice 激活设备,参数 sDevSerialNO 序列号(跟盒子上的序列号不一样,需要搜索的结果),sCommand 激活密码
  5. NET_DVR_Init 初始化,NET开头的接口需要先执行初始化
  6. NET_DVR_Cleanup 释放资源
  7. NET_DVR_Login_V30 登录,参数 sDvrIp iDvrPort sUserName sPassword
  8. NET_DVR_Logout_V30 登出
  9. NET_DVR_ConfigWifi 配网,暂时有问题,参数 sEssid wifi名字, sPassword 密码
  10. NET_DVR_FindFile_V30 查找录像列表,参数 struStartTime struStopTime dwFileType,返回值 list ,包括 sFileName struStartTime struStopTime dwFileSize sCardNum byLocked byFileType byRes
  11. NET_DVR_SetTimezone 设置时区,参数 diffHour diffMinute
  12. NET_DVR_SetupRecord 设置录像,参数 state 0停止录像;1开始录像
  13. NET_DVR_GetRecordState 获取录像状态,返回值 state 0停止录像;1开始录像

使用教程

  1. 引入插件 const hkPlugin = uni.requireNativePlugin('leruge-native-haikang')
  2. 返回值格式 {code: 1, msg: '提示信息', data: '数据', time: '请求时间'} code是1表示请求正常;0是请求异常
  3. 返回值的的意思跟海康文档一样,有看不懂的参考海康文档即可

SADP_Start_V40 开始搜索

const res = hkPlugin.SADP_Start_V40()
uni.showToast({
    title: JSON.stringify(res),
    icon: 'none'
})

SADP_Stop 停止搜索

const res = hkPlugin.SADP_Stop()
uni.showToast({
    title: JSON.stringify(res),
    icon: 'none'
})

SADP_Clearup 清理搜索列表,不建议使用

const res = hkPlugin.SADP_Clearup()
uni.showToast({
    title: JSON.stringify(res),
    icon: 'none'
})

SADP_ActivateDevice 设备激活

const res = hkPlugin.SADP_ActivateDevice({
    sDevSerialNO: 'DS-IPC-K24H-LWT20240422AACHFD2269861', // 序列号
    sCommand: 'hsb88888', // 密码
})
uni.showToast({
    title: JSON.stringify(res),
    icon: 'none'
})

NET_DVR_Init net初始化

const res = hkPlugin.NET_DVR_Init()
uni.showToast({
    title: JSON.stringify(res),
    icon: 'none'
})

NET_DVR_Cleanup 释放资源

const res = hkPlugin.NET_DVR_Cleanup()
uni.showToast({
    title: JSON.stringify(res),
    icon: 'none'
})

NET_DVR_Login_V30 设备登录

const res = hkPlugin.NET_DVR_Login_V30({
    sDvrIp: '192.168.31.22', // ip
    iDvrPort: 8000, // 端口
    sUserName: 'admin', // 用户名
    sPassword: 'hsb88888', // 密码
})
uni.showToast({
    title: JSON.stringify(res),
    icon: 'none'
})

NET_DVR_Logout_V30 设备登出

const res = hkPlugin.NET_DVR_Logout_V30()
uni.showToast({
    title: JSON.stringify(res),
    icon: 'none'
})

NET_ConfigWifi wifi配网

const res = hkPlugin.NET_DVR_ConfigWifi({
    sEssid: '', // ssid
    sPassword: '', // 密码
})
uni.showToast({
    title: JSON.stringify(res),
    icon: 'none'
})

NET_DVR_FindFile_V30 本地录像列表

const res = hkPlugin.NET_DVR_FindFile_V30({
    struStartTime: '2024-12-12 0:0:0', // DS-IPC-K24H-LWT20240422AACHFD2269861
    struStopTime: '2024-12-12 23:59:59',
    dwFileType: 0xff, // 默认 0xff,参数参考海康文档

})
uni.showToast({
    title: JSON.stringify(res),
    icon: 'none'
})

NET_DVR_SetTimezone 设置时间

const res = hkPlugin.NET_DVR_SetTimezone({
    diffHour: -4, // 默认8 时差小时
    diffMinute: 0, // 默认0 时差分钟

})
uni.showToast({
    title: JSON.stringify(res),
    icon: 'none'
})

NET_DVR_SetupRecord 设置录像

const res = hkPlugin.NET_DVR_SetupRecord({
    state: 1, // 默认0; 0- 不录像,1- 录像

})
uni.showToast({
    title: JSON.stringify(res),
    icon: 'none'
})

NET_DVR_GetRecordState 获取录像状态

// 0- 不录像,1- 录像
const res = hkPlugin.NET_DVR_GetRecordState()
uni.showToast({
    title: JSON.stringify(res),
    icon: 'none'
})

NET_DVR_STDXMLConfig 透传

const res = hkPlugin.NET_DVR_STDXMLConfig({
    url: '', // 请求地址:PUT /ISAPI/System/Network/interfaces/2/wireless
    xmlString: '', // 请求参数,没有可不传
})
uni.showToast({
    title: JSON.stringify(res),
    icon: 'none'
})

权限说明

  1. 安卓 android.permission.ACCESS_NETWORK_STATE android.permission.ACCESS_WIFI_STATE android.permission.CHANGE_WIFI_STATE
  2. ios com.apple.developer.networking.wifi-info com.apple.developer.networking.multicast

隐私、权限声明

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

安卓权限:android.permission.ACCESS_NETWORK_STATE、android.permission.ACCESS_WIFI_STATE和android.permission.CHANGE_WIFI_STATE; IOS权限:com.apple.developer.networking.wifi-info和com.apple.developer.networking.multicast

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

插件不采集任何数据

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

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