更新记录

1.0.3(2023-04-21)

websocket链接逻辑优化,掉线重连逻辑优化,结果回调逻辑优化

1.0.2(2023-04-04)

websocket连接、重连逻辑优化、修改bug、删除非必要日志打印

1.0.1(2023-03-16)

插件优化,自己使用过程中重连失败或不自动重连的bug处理

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 12.0 armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 ×

原生插件通用使用流程:

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


安卓WebSocket连接原生插件

  • 支持Android平台使用
    1. 函数说明
序号 函数名称 函数说明
1 connect(String json,callback) websocket连接函数
2 disconnect() 断开连接函数
  • connect(String json,callback)函数回调结果说明,返回结果中code值见下方code值说明

    一、参数1示例:
      {
        url: 'ws://http://localhost/:8088/web',//websocket连接地址
        protocol: '',//子协议
        heartbeatTime: 1000,//心跳时间,默认1000 单位:ms
        heartbeatContent: { //心跳包内容,key必须使用heartbeatContent,若不传时,默认为{key:value}
            heartbeatKey: 'heartbeatValue'//key和value请使用者自定义
        }
      }
    
    二、该函数回调结果示例如下
      1、连接成功返回:{"code":0,"message":"成功","data":"websocket连接已打开"}
      2、心跳包内容发送时返回:{"code":2,"message":"成功","data":"{\"heartbeatKey\":\"heartbeatValue\"}"}
      3、调用disconnect()时返回:{"code":-1,"message":"失败","data":"{\"code\":1000,\"reason\":\"主动关闭websocket连接\",\"remote\":false}"}
      4、连接失败:{"code":-1,"message":"失败","data":"{\"code\":1002,\"reason\":\"Invalid status code received: 401 Status line: HTTP\\\/1.1 401 \",\"remote\":false}"}
      5、收到消息时:{"code":1,"message":"成功","data":"{\"test\":\"测试消息\"}"},code为1时,data对应的就是后台发送的数据
  • code 值说明

    序号 code值 说明
    1 2 心跳包内容发送
    2 1 收到消息,data对应的数据为后台发送的内容
    3 0 连接成功
    4 -1 连接失败,具体错误信息请查看返回结果中data对应的数据
  • 使用示例

    <template>
        <view class="uni-column">
            <view class="uni-row">
                <button @click="connect()">连接</button>
                <button style="margin-left: 40rpx;" @click="disconnect()">断开连接</button>
            </view>
            <view class="uni-column">
                <text style="margin: 20rpx;" v-for="(item,index) in messages">{{item}}</text>
            </view>
        </view>
    </template>
    
    <script>
        const module = uni.requireNativePlugin("jushi-websocket")
        export default {
            data() {
                return {
                    messages: []
                }
            },
            methods: {
                connect() {
                    module.connect({
                        url: 'ws://http://localhost/:8088/web',//websocket连接地址
                        protocol: '',//子协议
                        heartbeatTime: 1000,//心跳时间,默认1000 单位:ms
                        heartbeatContent: { //心跳包内容,key必须使用heartbeatContent,若不传时,默认为{key:value}
                            heartbeatKey: 'heartbeatValue'//key和value请使用者自定义
                        }
                    }, res => {
                        console.log(res)
                        this.messages.push(res)
                    })
                },
                disconnect() {
                    module.disconnect()
                }
            }
        }
    </script>
    
    <style>
        .uni-column {
            display: flex;
            flex-direction: column;
        }
    
        .uni-row {
            display: flex;
            flex-direction: row;
        }
    </style>
  • 示例应用下载

    扫码下载体验

    其它插件

    安卓原生插件

  • 文件在线预览

  • 银联支付线上收银台(通用版) 封装

  • 阿里云RTC音视频通话

  • 权限请求

  • 文字转语音

  • MQTT连接

  • 获取手机通讯录联系人

  • 快捷工具悬浮窗

  • 日历日程事件

  • 获取本地音频文件信息

  • 根据经纬度获取位置信息

  • WebSocket连接

  • 高德地图封装安卓原生地图扩展组件

  • 使用ECharts封装的安卓原生扩展组件

  • 给图片添加水印

  • 自定义通知栏通知

    UTS插件

  • 安卓权限请求UTS插件

  • 安卓文字转语音UTS插件

  • 安卓获取音频文件UTS插件

    前端插件

  • ECharts封装全端通用组件

  • 图片添加水印,支持微信小程序、H5

  • 手写签名、电子签名组件

隐私、权限声明

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

<uses-permission android:name="android.permission.INTERNET"/>

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

本插件不采集任何数据

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

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