您现在的位置: 微信小程序 > 微信小程序开发 > BUG >

微信小程序bug总结, 不定期更新

来源:微信小程序 编辑:Yiyongtong.com 发布时间:2018-02-08 15:03热度:

上传文件, 回应的json需要手动JSON.parse

wx.hideLoading();看起来是个同步的api, 不过有时需要异步调用, 如:

 


setTimeout(() => {
  wx.hideLoading();
}, 200);

wx.hideLoading()也可以关闭toast(wx.showToast()), 这…?

五层页面栈限制

 

当页面栈超过五层时, 会出现错误


{
    errMsg :"navigateTo:fail webview count limit exceed"
}

text允许复制用的是css控制的, 也就是:

 


user-select: none;
-webkit-user-select: none;

也就是说, 要想复制, 加上下面这个样式就可以


user-select: text;
-webkit-user-select: text;

开发者工具出错不提示, 如:

 


let a = util.getInfo();

if (a) {
  // ...
}

如果util模块未引入, 这里也不报错, 我遇到过好几次…

对开发者的api返回数据又封装了一层, 根本没用, 就是故作聪明地多了一层数据嵌套, 让人多一些麻烦

 


{
  data:{
    result: 0, msg: "", data: {…}
  },
  errMsg:"request:ok",
  header: {
    Server: "nginx", ...
  },
  statusCode:200
}

语音api, 调用stopRecord之后要在startRecord的success回调中获取录音文件

video组件, 用view包裹, view不要用fixed定位

 

fixed定位的video, 在切换到全屏, 再切到普通大小时, iOS上全屏的按钮会消失, 看来iOS上fixed定位还是有问题, 尽量不要用fixed定位吧

websocket关闭问题

 


// code:1006, reason:"abnormal closure"
// 主动调用close, 会触发1006错误
// 如果是服务端异常导致的关闭, 也会触发1006
if (res.code === 1006) {
    console.log('1006 error');
    return;
}

// 正常退出, 1000(这玩意是小程序触发的, 
// 在产生第二个连接时, 小程序会自动关闭第一个连接, 从而进入onclose回调, 产生1000这个code值)
if (res.code === 1000) {
    console.log('1000 error');
    return;
}