小程序没找到长按识别二维码的功能,只能用这种先保存图片,再去扫一扫的形式。
<image src="../../assets/images/list0.png" bindtouchstart='timestart' bindtouchend='timeend' bindtap='saveImg'></image> <view>1、长按保存二维码图片</view> <view>2、打开微信扫一扫,选择相册图片</view>
//点击开始的时间 timestart: function (e) { var _this = this; _this.setData({ timestart: e.timeStamp }); }, //点击结束的时间 timeend: function (e) { var _this = this; _this.setData({ timeend: e.timeStamp }); }, //保存图片 saveImg: function (e) { var _this = this; var times = _this.data.timeend - _this.data.timestart; if (times > 300) { console.log("长按"); wx.getSetting({ success: function (res) { wx.authorize({ scope: 'scope.writePhotosAlbum', success: function (res) { console.log("授权成功"); var imgUrl = "http://shareds.oss-cn-hangzhou.aliyuncs.com/exhibit/20180815/tmp_35d425e6e732ba516f2e8c9988706eba.jpg"; wx.downloadFile({//下载文件资源到本地,客户端直接发起一个 HTTP GET 请求,返回文件的本地临时路径 url: imgUrl, success: function (res) { // 下载成功后再保存到本地 wx.saveImageToPhotosAlbum({ filePath: res.tempFilePath,//返回的临时文件路径,下载后的文件会存储到一个临时文件 success: function (res) { wx.showToast({ title: '成功保存到相册', icon: 'success' }) } }) } }) } }) } }) } },