微信小程序开发之真机预览
1:真机预览时上传组件的坑:
当在真机里面使用上传组件,当进入选择相片或者拍照的时候,小程序会进入后台,调用APP onHide()方法,选择完返回小程序是会调用App Onshow()方法,然后调用主页js里面的onshow()方法。
而本地开发工具测试时并不会出现这种情况,这将导致如果你在主页js onshow里面写了初始化数据的话,在真机预览状态下可能会给你带来不小的麻烦,会把你并不想清掉的数据的时候把数据清掉,如果要初始化最好是在整个页面数据处理完以后,并不能再onShow()方法里面,比如提交表单以后,要将页面的输入框的数据清空的话,我们就应该在提交表单成功的毁掉函数i做数据清空
2:wx.canvasToTempFilePath(OBJECT)
使用接口将画布上的图片转为临时路径的时候,由于开发工具的局限性,在工具中无法调试的时候,会报 VM122:2 Error: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
at Error (native)
at Object.invokeCanvasToDataUrl_100088 (http://1397529163.debug.open.weixin.qq.com/example/network/network.html:24:10842)
at u (:1:2257)
at :1:4644的错误,报错的原因是在调用接口的时候,其渲染层会调用封装好的toDataURL()方法,该方法使用时图片必须在服务器上,且必须是https安全协议,在真机上调试的时候,我们必须勾选不校验合法域名,此时再在真机上调试将不会报错。
3:wx.chooseLocation()
使用接口时,需要获取用户位置权限,在开发工具中不能进行实时地位,需要在真机上才能实现,如果一不小心拒绝了授权,需要重新调出设置用户权限列表,可以使用wx.openSetting接口
详细用法见链接 (微信小程序联盟填坑系列)http://www.wxapp-union.com/forum.php?mod=viewthread&tid=4066
wx.openSetting({
//重新请求获取定位
success: (res) => {
res.authSetting = {
"scope.userLocation":true,
}
}}) 该接口只有在真机上才能调出列表进行重新设置,在开发工具里会报错:不能加载列表数据。在微信开发工具0.17.172600版本以后就能调试打开列表