收藏
回答

wx.connectWifi 苹果和安卓表现不一致

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug WiFi API 客户端 7.0.4 2.7.1

- 当前 Bug 的表现(可附上截图)

我们想通过手机验证用户输入的ssid和密码是否正确。在苹果上表现良好,通过输入的ssid和密码如果输入错误,会执行 fail 回调,可以给用户一个改正的界面。但在安卓上表现出了问题,如果是ssid和当前已经连接的ssid同名,密码输入错误,则不会执行 fail 回调。是一个黑色的界面一闪而过。应该是安卓如果是同名ssid,而且已经连接,就不会触发connectWifi 事件了。我把ssid换成了一个前天名字,就会触发 fail 回调,告知错误,在回调之前小米会提醒我是否允许微信获取wifi 权限。

小米的测试结果:不回调fail


苹果的正常:


小米的输入错误 ssid 会正常回调 fail



小米的手机型号截图:


- 预期表现

只要是输入错误的 wifi 密码,都应该触发 fail 回调。

- 复现路径


- 提供一个最简复现 Demo

代码如下:form 表单提交了 ssid 和 pwd ,然后执行 formSubmit 函数:

formSubmit: function (e) {
    that.setData({ "wifi": JSON.stringify(e.detail.value) });
    wx.startWifi({
       
      success(res) {
        wx.connectWifi({
          SSID: e.detail.value.ssid,
          password: e.detail.value.ssidpwd,
          success(res) {
            oldwifi = { SSID: e.detail.value.ssid, password: e.detail.value.ssidpwd}
          },
          fail(res){
            that.setData({ "wifi": JSON.stringify(res) });
            that.setData({ "tips":"WiFi不存在或密码错误" });
          }
        });
      },
       
    })
  },

前端页面:

<text>{{wifi}}</text>
<form bindsubmit="formSubmit" bindreset="formReset">
<view>WiFi SSID: 如果您手机连接了WiFi,SSID将自动获取</view>
<input name="ssid"  placeholder="请输WiFi SSID" value='{{ssid}}' />
<view>WiFi 密码:<label style="color:#ff0000;">{{tips}}</label></view>
<input name="ssidpwd" password placeholder="请输入Wi-Fi密码" />
  <button form-type="submit">连接</button>
</form>


回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    2019-06-03

    你好,麻烦提供出现问题微信版本号、能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

    2019-06-03
    赞同
    回复
  • 南昌傲亚信息有限公司
    南昌傲亚信息有限公司
    2019-06-01

    另外,在苹果如果已经连接wifi ,输入当前的ssid和正确的密码后,会返回:已经连接的 success 回调。输入错误的密码后,会返回密码错误的 fail 回调,我认为苹果版的是我预期的结果,安卓有点问题。


    2019-06-01
    赞同
    回复
登录 后发表内容