六二、微信小程序开发中踩过的坑(二)

微信小程序踩坑记

1.点击事件传参

  <view class="btn" bindtap="tapNav" data-nav="1">
      111111
  </view>

  <view class="btn" bindtap="tapNav" data-nav="1">
  111111
    <view data-nav="2">2222</view>
  </view>

点击事件返回对象:

    "currentTarget":  {      // 事件绑定的当前元素
        "dataset": {
        "nav":"1"
        }
    },
    "target": {              // 触发事件的源元素
        "dataset":  {
        "nav":"2"
        }
    }

如果在父元素上绑定了事件并传参,那么当点击父元素时,事件绑定的组件和触发事件的源组件是同一个元素,所以 currentTarget 、target 都可以拿到参数。但是当点击子元素时,target 就不是事件绑定的组件了,所以拿不到参数。 由于事件冒泡的机制,父元素上绑定的事件依然可以触发,因此 currentTarget 依然可以拿到参数。

2.view 标签不识别 ‘/n’ 换行符,需要用 text 标签。text 与 view 组件的主要区别是:除了text 节点以外
的其他节点都无法长按选中。

3.引用本地图片时,相对地址写错开发工具不会报错显示正常,真机不显示图片但也不报错。wx.previewImage 打开网络图片时,需要带上协议头才能预览,并且不支持 gif 动图。

4.视频组件的层级最高,建议不要在一个 scroll-view 内使用多个 video ,样式会错位。

5.Unexpected EOF … page-frame.html
这是因为后台返回的数据中带有特殊字符,导致读取时出错。
参考文档:http://www.cnblogs.com/rrooyy/p/5349978.html
该问题只需后台将特殊字符去除即可。

6.页面跳转
使用微信自带底部导航栏时,如果需要切换 tab ,不能使用 wx.navigateTo 跳转到其中的标签页,需要使用 wx.switchTab 来进行切换。

7.报错 request: fail ssl hand shake error 证书原因,一般是因为设置了代理,关闭代理即可。

8.登录失效后,需要重新 wx.login() 并且重新获取用户信息用来更新 iv, encrytedData。这是因为每次调用 wx.login() 会导致微信服务器更新session_key,导致解密失败,因此需要获取新的 iv, encrytedData

9.wx.request() 返回的状态码 res.statusCode 的值在 iOS 下是 int 型数据,而在 Android 6.0.1 上却是 String 型数据。

```
wx.request({
    url: 'http://api.example.com',
    success: function (res) {
        if (res.statusCode === 200) {
            // success
        } else {
            // server failure
        }
    }
})
```

上述代码就踩坑了,正确的做法是使用 == 而不是使用 === 来判断。另外一个更规范的方法是使用 parseInt(res.statusCode) === 200 来实现。

10.wx.uploadFile 域名需要在公众平台配置,如果用 post 请求返回的 json 并不是 object类型,前端需要用 JSON.parse 转化,wx.request 的返回则正常,为 object 类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值