检测权限
const context = plus.android.runtimeMainActivity()
const result = plus.android.invoke(
'androidx.core.app.ActivityCompat',
'checkCallingOrSelfPermission',
context,
'android.permission.CAMERA'
)
从相册选择图片进行扫码
uni.chooseImage({ // 使用 plus.gallery.pick 问题比 uni.chooseImage 严重
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album'], // 从相册选择
success: (res) => {
setTimeout(() => {
plus.barcode.scan(
res.tempFilePaths[0],
(type, code) => {
this.handleResult(type, code)
},
() => {
plus.nativeUI.toast('解析失败')
},
[plus.barcode.QR],
true
)
}, 300) // 不加延迟会造成卡死,原因未知,不检测权限则没这个问题
},
})