uniapp 常用(长按识别二维码,部分二维码识别不出来)
// 识别二维码
export default function(url){
return new Promise((resolve, reject) => {
uni.previewImage({
urls: [url],
longPressActions: {
itemList: ['保存图片','识别二维码'],
success: function(data) {
const {tapIndex} = data
uni.showLoading({
title: '正在识别!',
mask:true
});
//临时保存图片
uni.downloadFile({
url,
timeout:5000,
success: async (img) => {
if (img.statusCode === 200) {
if(tapIndex == 1){
try{
const res = await parseCode(img.tempFilePath)
uni.hideLoading();
resolve(res)
}catch(e){
uni.hideLoading();
reject(e)
}
}else{
uni.hideLoading();
/* uni.saveFile({
tempFilePath: tempFilePaths[0],
success: function (res) {
plus.nativeUI.closePreviewImage(); // 关闭预览的图片
uni.$u.toast('保存成功!')
resolve()
}
}); */
// 需要将图片保存到相册
uni.saveImageToPhotosAlbum({
filePath: img.tempFilePath, // 图片文件路径,可以是临时文件路径也可以是永久文件路径,不支持网络图片路径
success(res){
plus.nativeUI.closePreviewImage(); // 关闭预览的图片
uni.$u.toast('保存成功,请自行在手机相册查看!');
},
fail(err){
plus.nativeUI.closePreviewImage(); // 关闭预览的图片
uni.$u.toast('图片保存失败');
}
})
}
}else{
// 保存失败
uni.hideLoading();
plus.nativeUI.closePreviewImage(); // 关闭预览的图片
uni.$u.toast('图片保存失败,请重试!')
reject(img)
}
},
fail:(err)=>{
// 接口调用失败
uni.hideLoading();
plus.nativeUI.closePreviewImage(); // 关闭预览的图片
uni.$u.toast('图片保存失败,请重试!')
reject(err)
}
});
},
fail: function(err) {
plus.nativeUI.closePreviewImage(); // 关闭预览的图片
reject(err)
}
}
});
});
}
export function parseCode (file){
return new Promise((resolve, reject) => {
plus.barcode.scan(file,
function(type,result) {
plus.nativeUI.closePreviewImage(); // 关闭预览的图片
resolve(result)
}, function(e){
uni.hideLoading();
plus.nativeUI.closePreviewImage(); // 关闭预览的图片
reject(e)
}
)
});
}
本文来自博客园,作者:小虾米吖~,转载请注明原文链接:https://www.cnblogs.com/LindaBlog/p/18271262