更新记录

0.0.2(2022-12-06)

1.解决安卓三星手机兼容问题 (0.0.2) 2.ios弃用方法getCurrentSsid换为getCurrentWifi

0.0.1(2022-04-27)

android可以获取wifi信息列表,并生成二维码图片,也可以手动输入wifi信息生成二维码。iOS获取wifi名称,并生成二维码图片,也可以手动输入wifi信息生成二维码。


平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:9 - 15

原生插件通用使用流程:

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


android,ios获取WiFi信息,并生成二维码

Android

安卓获取wifi列表信息,选择wifi信息生成二维码,也可以手动输入生成二维码
  • Android 权限

   <!--使用网络-->
   <uses-permission android:name="android.permission.INTERNET" />
   <!--网络状态-->
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
   <!--wifi状态权限-->
   <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
   <!--位置信息-->
   <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
   <!--如果是安卓10.0,需要后台获取连接的wifi名称则添加进程获取位置信息权限 -->
   <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
   <!--android 10.0使用wifi api新添加的权限-->
   <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  • 解决问题

1.解决三星手机兼容问题 (0.0.2)


(1).之前参数方法

<view class="wifi-item" v-for="(item,index) in wifiList" v-if="item.SSID!='' && item.SSID!=null && item.SSID!=undefined" @tap='wifiListTap(item.SSID,item.wifiSsid.hidden,item.capabilities)'> wifiListTap(wifi_name, wifi_hidden, wifi_capabilities) { let that = this that.wifiStatus = true that.ssid_value = 1; that.wifi_info.wifi_name = wifi_name; if (wifi_hidden) { that.wifi_info.wifi_hidden = 1; } else { that.wifi_info.wifi_hidden = 0; } if (wifi_capabilities.indexOf("WPA") !== -1) { that.wifiindex = 0 } else if (wifi_capabilities.indexOf("WEP") !== -1) { that.wifiindex = 1 } else if (wifi_capabilities.indexOf("nopass") !== -1) { that.wifiindex = 2 } },

(2).现在参数方法 <view class="wifi-item" v-for="(item,index) in wifiList" v-if="item.SSID!='' && item.SSID!=null && item.SSID!=undefined" @tap='wifiListTap(item.SSID,item.capabilities)'> wifiListTap(wifi_name, wifi_capabilities, wifi_hidden = 0) { let that = this that.wifiStatus = true that.ssid_value = 1; that.wifi_info.wifi_name = wifi_name; if (wifi_hidden) { that.wifi_info.wifi_hidden = 1; } else { that.wifi_info.wifi_hidden = 0; } if (wifi_capabilities.indexOf("WPA") !== -1) { that.wifiindex = 0 } else if (wifi_capabilities.indexOf("WEP") !== -1) { that.wifiindex = 1 } else if (wifi_capabilities.indexOf("nopass") !== -1) { that.wifiindex = 2 } },

> 2.ios弃用方法getCurrentSsid换为getCurrentWifi
+ #### 组件引入 ####

let WifiPlugin = uni.requireNativePlugin('Zhimi-Wifi');


+ #### 请求方法 ####

1. 检查权限
    WifiPlugin.checkPermission(function(res) {
             console.log("checkPermission",JSON.parse(res));
    }); 

2. 判断wifi是否打开
var isEnabled = WifiPlugin.isWifiEnabled();

3. 获取wifi列表
    WifiPlugin.getWifiList(function(res) {
            let wifiList=res
            console.log(wifiList);
    });
4. 开启wifi  //true:打开wifi false:关闭wifi
  WifiPlugin.setWifiEnabled(true);

> ## IOS ##
  >  ##### IOS获取wifi名称生成二维码,也可以手动输入生成二维码 #####
+ #### IOS 权限 ####

"privacyDescription": { "NSLocationWhenInUseUsageDescription": "访问wifi需要位置权限", "NSLocationAlwaysUsageDescription": "访问wifi需要位置权限", "NSLocationAlwaysAndWhenInUseUsageDescription": "访问wifi需要位置权限", "NSLocalNetworkUsageDescription": "用于wifi配网" }, "capabilities": { "entitlements": { "com.apple.developer.networking.wifi-info": true } }

+ #### 组件引入 ####

let WifiPlugin = uni.requireNativePlugin('Zhimi-Wifi');

+ #### 请求方法 ####
1. 检查定位权限
  WifiPlugin.checkPermission(function(res) {
             console.log("checkPermission",JSON.parse(res));
  }); 
2. 判断wifi是否打开
    var isEnabled = WifiPlugin.isWifiEnabled();
3. 获取当前连接wifi信息,目前有:{BSSID = ""; SSID = "";SSIDDATA = {length = , bytes = };}
    WifiPlugin.getCurrentWifi(function(res) {
          // res.SSID
          // res.BSSID
          // res.SSIDDATA
    });
4. 获取当前连接wifi名称
 WifiPlugin.getCurrentSsid(function(ssid){(弃用)
                    //  console.log(ssid);
 });
WifiPlugin.getCurrentWifi(function(ssid){
                    //  console.log(ssid);
 });
5. 开启wifi  //打开设置界面
  WifiPlugin.goWifiSetting();
6. 开启wifi  //打开设置界面
  WifiPlugin.goWifiSetting();

隐私、权限声明

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

android权限 <!--使用网络--> <uses-permission android:name="android.permission.INTERNET" /> <!--网络状态--> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!--wifi状态权限--> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!--位置信息--> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!--如果是安卓10.0,需要后台获取连接的wifi名称则添加进程获取位置信息权限 --> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <!--android 10.0使用wifi api新添加的权限--> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> ios权限 privacyDescription: "NSLocationWhenInUseUsageDescription": "访问wifi需要位置权限", "NSLocationAlwaysUsageDescription": "访问wifi需要位置权限", "NSLocationAlwaysAndWhenInUseUsageDescription": "访问wifi需要位置权限", "NSLocalNetworkUsageDescription": "用于wifi配网" capabilities:{entitlements:{"com.apple.developer.networking.wifi-info": true}}

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

获取手机wifi信息 android获取wifi列表信息,wifi名称,是否隐藏,wifi强度等信息,开启定位权限,wifi状态 ios开启定位权限,wifi状态,获取wifi名称 {BSSID = ""; SSID = "";SSIDDATA = {length = , bytes = };}

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

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