刚刚偶然点击了一下右上角的刷新页面功能,刷新之后,功能是正常的。但是重新进来,依旧会有问题。
wx.chooseImage,wx.scanQRCode安卓调起正常,苹果为什么无效果?扫描身份证需要先调起获取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) } }); }, 求大神帮忙解决下,之前还以为是测试公众号的问题,上到正式环境了还不行,要上线啊。加急加急!
2023-07-11