开篇
今天,做的小程序项目要求,个人中心的客服图片在用户长按时可以识别其二维码,各种翻阅查找,采坑很多,浪费了很多时间,在这里记录下需要注意的点,以及对小程序官方提供的API做一个正确和清晰的认知,希望能帮助到大家
参考小程序官方文档后,发现:
1.文档中有一句提示: "image组件中二维码/小程序码图片不支持长按识别,仅在 wx.previewImage 中支持长按识别" 2.即便实现了 “wx.previewImage” 效果,但依旧是不支持二维码识别的
代码
①. wxml 页面元素设计
作为引导界面,只需放置一张图片即可,以我的代码为例
//# 使用简单的实现方式,直接赋值一个图片链接得了
<image src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1540964455347&di=68ac28aa79382ee2bc8dce10d5966e39&imgtype=0&src=http%3A%2F%2Fup.enterdesk.com%2Fedpic_source%2Fdb%2Ff1%2Fec%2Fdbf1ec353b17dce848676e2fdb7f9bb4.jpg" mode="widthFix" data-src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1540964455347&di=68ac28aa79382ee2bc8dce10d5966e39&imgtype=0&src=http%3A%2F%2Fup.enterdesk.com%2Fedpic_source%2Fdb%2Ff1%2Fec%2Fdbf1ec353b17dce848676e2fdb7f9bb4.jpg" bindtap="previewImage"></image>
②. js 文件实现 “previewImage”方法
在对应的 js 文件中,添加了如下的方法
/** * 图片预览方法 * 此处注意的一点就是,调用 "wx.previewImage"时,第二个参数要求为数组形式哦 * 当然,做过图片上传功能的应该会注意到,如果涉及到多张图片预览,图片链接数组集合即为参数 urls! */ previewImage: function(e) { var current = e.target.dataset.src; wx.previewImage({ current: current, urls: [current] }) },
重点来了...
特别需要注意的是:
1.如果需要识别二维码,那必须是小程序的二维码
2.图片路径中有中文无法显示图片
3.图片地址不能为http开头,否则图片只能在调试模式中显示,真机也必须开调试。
4.图片名称不能有空格
5.图片的后缀必须为小写的.png或者.jpg