微信小程序-實現掃碼自動鏈接wifi(android)

項目實路php

飯店,商鋪存在共享的wifi的地方,只須要貼出二維碼,用戶掃描後自動鏈接android

小程序 缺點:android6版本 ios11版本ios

圖片演示json

 

實現代碼(IOS沒看懂文檔說明 只簡單的帶過 但願能實現的朋友@我一下)小程序

// pages/wifi/wifi.js
Page({
  data: {
    startError: '',//初始化錯誤提示
    wifiListError: false, //wifi列表錯誤顯示開關
    wifiListErrorInfo: '',//wifi列表錯誤詳細
    system: '', //版本號
    platform: '', //系統 android
    ssid: 'wifi賬號',//wifi賬號(必填)
    pass: 'wifi密碼',//無線網密碼(必填)
    bssid: '',//設備號 自動獲取
    endError: ''//鏈接最後的提示
  },
  onLoad: function () {
    var _this = this;
    //檢測手機型號
    wx.getSystemInfo({
      success: function (res) {
        var system = '';
        if (res.platform == 'android') system = parseInt(res.system.substr(8));
        if (res.platform == 'ios') system = parseInt(res.system.substr(4));
        if (res.platform == 'android' && system < 6) {
          _this.setData({ startError: '手機版本暫時不支持' }); return
        }
        if (res.platform == 'ios' && system < 11) {
          _this.setData({ startError: '手機版本暫時不支持' }); return
        }
        _this.setData({ platform: res.platform });
        //初始化 Wi-Fi 模塊
        _this.startWifi(_this);
      }
    })

  },//初始化 Wi-Fi 模塊。
  startWifi: function (_this) {
    wx.startWifi({
      success: function () {
        _this.getList(_this);
      },
      fail: function (res) {
        _this.setData({ startError: res.errMsg });
      }
    })
  },
  getList: function (_this) {
    //安卓執行方法
    if (_this.data.platform == 'android') {
      //請求獲取 Wi-Fi 列表
      wx.getWifiList({
        success: function (res) {
          //安卓執行方法
          _this.AndroidList(_this);
        },
        fail: function (res) {
          _this.setData({ wifiListError: true });
          _this.setData({ wifiListErrorInfo: res.errMsg });
        }
      })
    }
    //IOS執行方法
    if (_this.data.platform == 'ios') {
      _this.IosList(_this);
    }

  },
  AndroidList: function (_this) {
    //監聽獲取到 Wi-Fi 列表數據
    wx.onGetWifiList(function (res) { //獲取列表
      if (res.wifiList.length) {
        // _this.setData({
        //   wifiList: res.wifiList
        // });
        //循環找出信號最好的那一個(wifi存在多個)
        var ssid = _this.data.ssid;
        var signalStrength = 0;
        var bssid = '';
        for (var i = 0; i < res.wifiList.length; i++) {
          if (res.wifiList[i]['SSID'] == ssid && res.wifiList[i]['signalStrength'] > signalStrength) {
            bssid = res.wifiList[i]['BSSID'];
            signalStrength = res.wifiList[i]['signalStrength'];
          }
        }
        if (!signalStrength) {
          _this.setData({ wifiListError: true });
          _this.setData({ wifiListErrorInfo: '未查詢到設置的wifi' });
          return
        }
        _this.setData({ bssid: bssid });
        //執行鏈接方法
        //鏈接wifi
        _this.Connected(_this);
      } else {
        _this.setData({ wifiListError: true });
        _this.setData({ wifiListErrorInfo: '未查詢到設置的wifi' });
      }
    })
  },
  IosList: function (_this) {
    _this.setData({ wifiListError: true });
    _this.setData({ wifiListErrorInfo: 'IOS暫不支持' });
  },//鏈接wifi
  Connected: function (_this) {
    wx.connectWifi({
      SSID: _this.data.ssid,
      BSSID: _this.data.bssid,
      password: _this.data.pass,
      success: function (res) {
        _this.setData({ endError: 'wifi鏈接成功' });
      },
      fail: function (res) {
        _this.setData({ endError: res.errMsg });
      }
    })
  }

})

 demo下載this

wifi.zip   spa

注意:project.config.json修改爲你的APPIDcode

相關文章
相關標籤/搜索