更新记录

1.3.0(2021-03-23)

优化配置wifi

1.2.0(2021-03-19)

增加跟定位服务相关的接口

1.1.0(2021-03-18)

修复有些手机无法获取ssid导致无法配置wifi的问题

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.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原生插件配置”->”云端插件“列表中删除该插件重新选择


莹石摄像头WiFi配置插件(uni-app原生SDK)接入使用指南

莹石摄像头WiFi配置接口


1.引入插件

** 在vue页面或nvue页面引入这个原生插件。 使用uni.requireNativePlugin的api,参数为插件的id。 例如:


//本插件id为 "EZ-Camera-Wifi-Config-Module"
const ezCameraWifiConfigModule= uni.requireNativePlugin("EZ-Camera-Wifi-Config-Module")

2.打开调试日志


//参数
const apConfigParam={
    debuggable:true/*true 打开调试日志,false关闭调试日志.默认为false*/
}
ezCameraWifiConfigModule.debugLog(apConfigParam)

//无返回值

3.获取android sdk版本


//无参数 
ezCameraWifiConfigModule.getAndroidSDKVersion()

//返回值
ret={
    sdkVersion:27, //android sdk版本
}

4.判断定位服务是否可用


//无参数 
ezCameraWifiConfigModule.isLocationServiceEnable()

//返回值
ret={
    enable:true, //true可用,false不可用
}

5.请求打开定位服务界面


//无参数 
ezCameraWifiConfigModule.requestOpenLocationService()
//返回值
ret={
    code:0, 
    //等于0,表示成功打开定位服务界面
    //等于1,表示找不到定位服务界面,返回结果失败,当出现这种情况可以通提示用户通过下拉状态栏在快捷方式中打开定位服务
    //等于2,表示成功打开定位服务界面,返回结果失败,当出现这种情况可以通提示用户通过下拉状态栏在快捷方式中打开定位服务
    enable:true, //等于true,表示定位服务已经打开,等于false表示没有打开定位服务,当code=1,或2时,无enable信息
    codeDescMsg:"描述信息"
}

6.AP配网

1.启动AP配网


//参数
const apConfigParam={
    routerWifiSsid:"ssid",      //路由器wifi名称.
    routerWifiPwd:"pwd",        //路由器wifi密码.
    deviceSerial:"ssid",        //设备序列号. 
    deviceVerifyCode:"code",    //设备验证码.
    deviceHotspotSsid:"ssid",   //设备热点名称.  deviceHotspotSsid="EZVIZ_"+deviceSerial  
    deviceHotspotPwd:"pwd",    //设备热点密码.  deviceHotspotPwd="EZVIZ_"+deviceVerifyCode
    autoConnect:false           //设备热点密码. 默认为false.
}
const ret=ezCameraWifiConfigModule.startAPConfig(apConfigParam)

//返回值,请查看 ‘错误码说明’
ret={
    code:0, //
    codeDescMsg:"code码描述信息,不可直接输入给用户"
}

2.停止AP配网


//无参数,无返回值
ezCameraWifiConfigModule.stopAPConfig()

7.SmartConfig配网

1.启动SmartConfig配网


//参数
const smartConfigParam ={
    routerWifiSsid:"ssid"/*路由器wifi名称*/
    routerWifiPwd:"pwd"/*路由器wifi密码*/
    deviceSerial:"serial"/*设备序列号*/
}
ezCameraWifiConfigModule.startSmartConfig(smartConfigParam )

//返回值,请查看 ‘错误码说明’
ret={
    code:0, //
    codeDescMsg:"code码描述信息,不可直接输入给用户"
}

2.停止SmartConfig配网


//无参数,无返回值
ezCameraWifiConfigModule.stopSmartConfig()

8.声波配网

1. 启动声波配网


//参数
const soundWaveConfigParam ={
    routerWifiSsid:"ssid"/*路由器wifi名称*/
    routerWifiPwd:"pwd"/*路由器wifi密码*/
    deviceSerial:"serial"/*设备序列号*/
}
ezCameraWifiConfigModule.startSoundWaveConfig(soundWaveConfigParam )

//返回值,请查看 ‘错误码说明’
ret={
    code:0, //
    codeDescMsg:"code码描述信息,不可直接输出给用户"
}

2.停止声波配网


//无参数,无返回值
ezCameraWifiConfigModule.stopSoundWaveConfig()

9.错误码说明

  • --------------------------- AP配网,SmartConfig配网,声波配网,公共错误码---------------------------

    //配置wifi成功
    SUCCESS(0,"成功")

    // 配网参数异常
    WRONG_CONFIG_PARAM(105, "wrong config param, please check them again"),

    // 仍在执行上次配网,进行下次配网前需要调用配网停止接口
    LAST_CONFIG_EXECUTING(110, "last config task is executing, please call stop config wifi interface before start config again"),

    // 手机未接入目标wifi,无法检测设备是否配网成功
    PHONE_NOT_CONNECTED_TO_TARGET_WIFI(111, "sdk can not de detect device's status because the phone do not connect to target wifi"),

    // 验证码错误
    WRONG_DEVICE_VERIFY_CODE(120, "you send wrong device verify code to sdk, please again"),

    // 配网超时(超时错误码小于100的原因说明:和老版本保持一致,保证最大的兼容性)
    CONFIG_TIMEOUT(15, "config wifi timeout, default timeout is " + Config.mTimeoutSecond + "s"),
  • --------------------------AP配网错误码最小值为500---------------------------

    //未打开定位权限,搜不到任何wifi
    MAY_LACK_LOCATION_PERMISSION(501, "failed to scan any wifi, please check if you grant location permission and open the position switch"),

    // AP配网进行中
    AP_CONFIG_IS_EXECUTING(502, "ap config is executing, please unInit it first, and then init is again"),

    // 设备不支持AP配网模式,或设备未重置到AP配网模式
    NOT_FIND_DEVICE_HOTSPOT(505, "not find target device's hotspot, device do not support ap config mode or not change to ap config mode"),

    /**
     * 在Android10及以上系统,使用NetworkSpecifier尝试自动连接到设备热点时,被用户主动拒绝。
     */
    USER_REFUSED_CONNECTION_REQUEST(506, "user refused to connect to target wifi, you need to guide user to manually connect to target wifi  and restart"),

    /**
     * 尝试打开wifi开关失败。
     * 必现场景:当应用的TargetVersion大于29,并且在Android10及以上系统时,系统始终拒绝应用打开wifi开关
     */
    FAILED_TO_AUTO_ENABLE_WIFI(507, "failed to enable wifi automatically, you need to guide user to manually enable wifi and restart"),
  • --------------------------SmartConfig配网错误码最小值为600---------------------------------

    // 手机未连接wifi,无法向设备传输配置
    CAN_NOT_SEND_CONFIGURATION_TO_DEVICE(605, "sdk can not send configuration to device because the phone do not connect to any valid wifi, which can access internet"),
  • --------------------------声波配网错误码最小值700---------------------------------------------
    // 手机音量未调到最大
    PHONE_MEDIA_VALUE_NOT_MAX(705, "phone media volume is not max, and it may cause failure of sound save config");

10.注意事项

  • 通过以上接口配置WiFi时,有可能配置WiFi成功,但不一定会回调,这时需要起一个定时器,不时的判断当前配置WiFi的设备是否已经在线,要综合判断是否配置WiFi成功。
  • 有的摄像头支持多种配置WiFi方法,具体支持哪几种,可以查看莹石文档上的http接口。
  • 莹石的摄像头有一款支持5GWiFi,其它摄像头不支持5GWiFi,注意配置的WiFi是2.4G,还是5G。
  • 需要“获取位置信息”权限,开启定位服务功能

隐私、权限声明

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

<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

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

插件不采集任何数据

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

许可协议

The MIT License (MIT) Copyright (c) 2015 Matt DesLauriers

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

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