微信小程序开发问题之wx.previewImage
小知识
wx.previewImage是微信小程序官方提供的预览图片功能的api。
在新页面中全屏预览图片。预览的过程中用户可以进行保存图片、发送给朋友等操作。
那么他有哪些坑呢?
我遇到的问题藏得比较深,我是在使用wxParse解析富文本时发现的。wxParse在解析img时会给它加上点击事件,那么这个点击事件是什么呢?
图在下面:
从中可以看到是微信的图片预览功能。其中that.setData({isPreview:true})
是我加上去用来判断是否点击了图片,本身是没有的,此时先忽略掉。
首先,点击图片预览时,会终止页面一切正在执行的操作,这是为什么呢?我猜测是触发了页面的onHide函数,我在onHide中打log时果不其然,验证了我是正确的。
当你再次点击图片回去时,会再次触发页面的onShow事件。所以,当你在onHide或者onShow函数里有执行的操作的时候就要注意了,这两个函数都会被触发,所以这时候就需要判断,这两个函数被触发是来源于正常的页面加载隐藏还是来源于点击图片预览,于是便有了我上面在wxParse的源码wxParse.js里的wxParseImgTap里加了一句that.setData({isPreview:true})
,而后我们可以用isPreview来判断onShow和onHide是否是被预览图片触发的。
此时我们并没有解决页面事件被终止的事实,因为线程被终止了。因为js里是单线程的,预览图片时会向服务器请求图片src,所以此时其他的异步操作便被停止,因为预览图片是一个同步操作,所以当你点击图片时,图片预览优先级最高,其他动作暂停,当你再次点击图片回到原样时,图片预览完成,在开发者工具里会自动继续之前页面被暂停的动作,但是真机调试却不会。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
- 微信小程序出现wx.navigateTo页面不跳转问题的解决方法
- 微信小程序 wx.login解密出现乱码的问题解决办法
- 微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
- 微信小程序 常见问题总结(4058,40013)及解决办法
- 微信小程序遇到修改数据后页面不渲染的问题解决
- 微信小程序搭建及解决登录失败问题
- 微信小程序request出现400的问题解决办法
- 解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
- 解决微信小程序防止无法回到主页的问题
- 微信小程序录音文件格式silk遇到的问题及解决方法
- 微信小程序出现wx.getLocation再次授权问题的解决方法分析
相关文章
ionic中的$ionicPlatform.ready事件中的通用设置
$ionicPlatform.ready事件是用于检测当前的平台是否就绪的事件,相当于基于document的deviceready事件, 在app中一些通用关于设备的设置必须在这个事件中处理2017-06-06关于meta viewport中target-densitydpi属性详解(推荐)
这篇文章主要介绍了关于meta viewport中target-densitydpi属性详解,通过不同的缩放比例实现了不同的预览效果,具体操作步骤大家可查看下文的详细讲解,感兴趣的小伙伴们可以参考一下。2017-08-08
最新评论