收藏
回答

Android 兼容性问题

问题模块
客户端

问题描述:

Android 部分平台(如 MI4 Android 6.0.1,华为,OPPO 等相关型号均会出现)在比较两个值时,使用 "===" 不能正确得到运算结果,必须使用 “==” 才可以。



是否必现:

在特定平台上必现


代码示例:


      success: (res) => {

        if (res.statusCode === 200) {

          return resolve(res.data)

        } else {

          return reject(res.data)

        }

      },

上面代码是 wx.request 的 success 回调函数,如果写成上面样子,则在指定平台代码全部跑到 reject 分支里执行,如果把 === 改成 == 则运行结果就正确了。


问题严重性:

由于微信小程序今天刚上线,从我掌握的情况来看,好多信微信小程序沦陷。而且这个问题较隐蔽,很多小程序可能还没发现。我们是因为导致页面不显示,很容易就发现问题。



最后一次编辑于  2017-01-09  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

2 个回答

  • Joey_永昌
    Joey_永昌
    2017-01-09

    更正补充 是否必现:

    在特定平台上,比较 wx.request 返回值里的 statusCode 时必现。其他情况还没观察到错误现象。


    2017-01-09
    赞同
    回复
  • undefined
    undefined
    2017-01-10

    statusCode 在IOS和Android下一个是number类型,一个是string类型,我也采坑了

    2017-01-10
    赞同
    回复