更新记录
0.1.1(2024-11-12)
- 增加 onUdpDataListenerHexData、onUdpDataListenerAsciiData、onUdpDataListenerByteData三个方法;
- 可以从以上新方法中获取发送数据设备的IP与端口;
0.1.0(2023-10-22)
- 基于原生Android开发的 uni-app 插件,实现安卓设备UDP通信;
- 创建UDP服务端,接收其他设备发送的数据;
- 作为UDP客户端,向UDP服务端发送数据;
- 实现工控设备中数据的互联;
- 使用手机也可以很便捷的在现场进行调试;
- 获取本机的有效IP地址;
平台兼容性
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原生插件配置”->”云端插件“列表中删除该插件重新选择
dodo-uniplugin-udp
插件测试平台
-
测试平板:PET_A133、PET_RK3568;
-
测试手机:vivo、小米、摩托罗拉;
-
测试系统:Android 12;
-
设备不需要root;
功能简介
- 基于原生Android开发的 uni-app 插件,实现安卓设备UDP通信;
- 创建UDP服务端,接收其他设备发送的数据;
- 作为UDP客户端,向UDP服务端发送数据;
- 实现工控设备中数据的互联;
- 使用手机也可以很便捷的在现场进行调试;
- 获取本机的有效IP地址;
使用方法
引用
// #ifdef APP-PLUS
const udp = uni.requireNativePlugin('dodo-uniplugin-udp')
// #endif
API
-
获取设备的IP地址
udp.getIp((res) => { if (res?.success) { console.log(res.msg)//IP地址 } })
-
创建UDP服务端
let ip = "192.168.1.188" let port = "8888" udp.createUdpService(ip, port, (res) => { uni.showToast({ icon: 'none', title: res.msg, duration: 2000 }); udp.onUdpDataListenerHex((res) => {//开启数据监听 console.log(res) }) })
-
关闭UDP服务
udp.udpClose((res) => {
if (res?.success) {
//关闭成功
}
})
-
监听UDP接收到的数据
4.1 以十六进制返回 onUdpDataListenerHex
4.2 以字符串返回 onUdpDataListenerASCII
4.3 以字节返回 onUdpDataListenerByte
// 以十六进制返回 onUdpDataListenerHex
udp.onUdpDataListenerHex((res) => {
console.log(res)
})
4.4 以十六进制返回 onUdpDataListenerHexData
4.5 以字符串返回 onUdpDataListenerASCIIData
4.6 以字节返回 onUdpDataListenerByteData
// 以十六进制返回 onUdpDataListenerHexData
udp.onUdpDataListenerHexData((res) => {
console.log(res)
console.log(res.ip + ':' + res.port + '|' + res.msg)
})
-
向UDP服务端发送消息
5.1 以十六进制发送 sendHex
5.2 以字符串发送 sendASCII
let ip = "192.168.1.10"
let port = "8888"
let send = "12345678"
udp.sendHex(ip, port, send, (res) => {
if (res?.success) {
//发送成功
} else {
uni.showToast({
icon: 'none',
title: res.msg,
duration: 2000
});
}
})
- 查看UDP状态
udp.udpState((res) => {
uni.showToast({
icon: 'none',
title: res.success,
duration: 2000
});
})
如果觉得可以就点个👍吧,您的关注就是我们的动力!
有使用问题或项目定制需求,联系微信
- rick6655(请备注添加原因)