扫描身份证需要先调起获取wx.chooseImage功能
安卓手机正常使用,模拟器正常使用
扫描二维码需要调取wx.scanQRCode功能
安卓手机正常使用,模拟器提示有权限
为了看是不是权限问题,我专门装了vConsole并接入了wx.checkJsApi(提示的都是true)
但是苹果就是没效果。根据一篇2018年的提问,让注释掉
// sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
// sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
注释掉后,依旧还是无效果
以下是我的代码
// 点击扫描患者身份证
onIdCard() {
let _this = this
// 拍照或从手机相册中选图
this.$wx.chooseImage({
count: 1, // 默认9
// sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
// sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {//接口调用成功时执行的回调函数
let localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
if (localIds.length != 0) {
// 加载提示
showLoadingToast({
message: '加载中...',
forbidClick: true,
overlay: true,
duration: 3000
});
console.log(localIds[0])
_this.getImgData(localIds[0])
}
},
fail: function (res) {//接口调用失败时执行的回调函数
console.log("调取相机或拍照失败!")
console.log(res)
}
});
},
// 将图片转换为base64
getImgData(localId) {
console.log(localId)
let _this = this
this.$wx.getLocalImgData({
localId: localId, // 图片的localID
success: function (res) {
let localData = res.localData; // localData是图片的base64数据,可以用img标签显示
if (localData.indexOf('data:image') != 0) {
//判断是否有这样的头部
localData = 'data:image/jpeg;base64,' + localData
}
//第一个替换的是换行符
//第二个替换的是图片类型,因为在IOS机上测试时看到它的图片类型时jgp
localData = localData.replace(/\r|\n/g, '').replace('data:image/jgp', 'data:image/jpeg')
_this.addedPreviewFile = localData;
if (localData) {
// orc校验
postOcrIdCard(_this.$axios, _this.addedPreviewFile).then(res => {
if (res.data.code == 200) {
let result = res.data.data
_this.idCardMessage.age = result.age
_this.idCardMessage.address = result.address
_this.idCardMessage.birthday = result.birthday
_this.idCardMessage.doctorId = localStorage.getItem('doctorId')
_this.idCardMessage.idCardNo = result.idCardNo
_this.idCardMessage.name = result.name
_this.idCardMessage.patientId = ''
_this.idCardMessage.sex = result.sex
console.log(toRaw(_this.idCardMessage))
postBindRecordIdCard(_this.$axios,_this.idCardMessage).then( res =>{
console.log(res)
if(res.data.code = 200){
showSuccessToast(res.data.data);
}else{
showFailToast(res.data.msg);
}
})
}
// 关闭加载
closeToast();
})
}
},
fail: function (res) {
console.log("获取base64失败!")
console.log(res)
}
});
},
// 点击扫描患者二维码
onQrCode(){
let _this = this
// 扫描患者二维码
this.$wx.scanQRCode({
needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
scanType: ["qrCode"], // 默认二维码
success: function (res) {
let result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
console.log(result)
postBindRecordQr(_this.$axios, {
doctorId: localStorage.getItem('doctorId'),
patientId: result
}).then( res =>{
console.log(res)
if(res.data.code = 200){
showSuccessToast(res.data.data);
}else{
showFailToast(res.data.errMsg);
}
})
},
error:function (res){
console.log('调取扫一扫功能失败!')
console.log(res)
}
});
},
求大神帮忙解决下,之前还以为是测试公众号的问题,上到正式环境了还不行,要上线啊。加急加急!
你好,麻烦提供下机型,微信版本号和复现链接
刚刚偶然点击了一下右上角的刷新页面功能,刷新之后,功能是正常的。但是重新进来,依旧会有问题。
在进入需要注入config权限页面之前,使用window.location.href = ‘你要进入的页面地址’
就解决了