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)
            }
        )
    });
}

 

posted on 2024-06-27 14:51  小虾米吖~  阅读(366)  评论(0编辑  收藏  举报