- 开发公众号,相机在安卓上可以调用,在IOS上无法调用?
在IOS上报错 调取摄像头失败 Object { "errMsg": "chooseImage:... 调取摄像头失败 Object { "errMsg": "chooseImage:... errMsg: "chooseImage:the permission value is offline verifying" __proto__: Object __proto__: null 但是在安卓上可以正常调用 weixin-jsapi版本是 1.1.0 代码如下 点击之前已设置了config wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: res.data.appId, // 必填,公众号的唯一标识 timestamp: res.data.timestamp, // 必填,生成签名的时间戳 nonceStr: res.data.nonceStr, // 必填,生成签名的随机串 signature: res.data.signature, // 必填,签名 jsApiList: ['getLocation', 'chooseImage', 'uploadImage', 'downloadImage'] // 必填,需要使用的JS接口列表 }) //调取摄像头 <div class="upload" @click="ready"> {{ text }} </div> //方法 ready () { wx.ready(() => { wx.chooseImage({ count: 1, // 默认9 sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有 sourceType: ['camera'], // 可以指定来源是相册还是相机,默认二者都有 success: (res) => { this.localId = res.localIds[0] // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片 wx.uploadImage({ localId: this.localId, // 需要上传的图片的本地ID,由chooseImage接口获得 isShowProgressTips: 1, // 默认为1,显示进度提示 success: (res) => { var serverId = res.serverId // 返回图片的服务器端ID console.log('服务器端id', serverId) const params = { groupId: this.groupId, mediaId: serverId } GetImgFileUrl(params).then(res => { const path = res.data this.readyToLogin(path) }) }, fail: (err) => { console.log('上传图像失败', err) } }) }, fail: (err) => { console.log('调取摄像头失败', err) } }) }) },
2020-10-15 - 微信小程序扫码后跳到指定页面又瞬间跳到首页问题
在发布到正式版后,与客户端联调。经常性会出现扫码后会先跳到二维码的指定页面,然后瞬间跳到首页上;然后退出小程序在扫码后,会一切正常跳转到指定页面。我看瞬间跳转到首页就像点击了返回按钮一样是从左边出来的,但是我项目中唯一强制跳转到首页是另一个页面。百思不得其解。求大佬们提出一些意见或者怎么才能查出问题所在,谢谢。 这是一个页面扫码进来的逻辑,先贴出来。代码里根本没有跳转首页或者返回页面的逻辑 [代码]onLoad: [代码][代码]function[代码] [代码](options) {[代码] [代码]// 如果本地有这个证明是扫码,这个会在app.js中onshow清空和列表点击清空。[代码] [代码] [代码][代码]if[代码] [代码](wx.getStorageSync([代码][代码]"isScanOption"[代码][代码])) {[代码][代码] [代码][代码]options = wx.getStorageSync([代码][代码]"isScanOption"[代码][代码]);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]// 扫描进来的_meetingGuid,mac地址,isScan 是否是扫码[代码][代码] [代码][代码]let [meetingGuid, clientMac, isScan] = [[代码][代码]''[代码][代码], [代码][代码]''[代码][代码], 0];[代码][代码] [代码][代码]//如果存在证明是扫码进来 赋值给globalData[代码][代码] [代码][代码]if[代码] [代码](options && options.q) {[代码][代码] [代码][代码]const scene = decodeURIComponent(options.q);[代码][代码] [代码][代码]clientMac = [代码][代码]this[代码][代码].getUrlParam(scene, [代码][代码]'clientMac'[代码][代码]) [代码][代码]//mac地址[代码][代码] [代码][代码]meetingGuid = [代码][代码]this[代码][代码].getUrlParam(scene, [代码][代码]'meetingGuid'[代码][代码]);[代码][代码] [代码][代码]app.globalData.meetingGuid = meetingGuid;[代码][代码] [代码][代码]console.log([代码][代码]"创建投票-scene:::::::::"[代码][代码], scene)[代码] [代码] [代码][代码]//如果是扫码进来的要保存下来参数,因为如果是未登录跳到登录或者跳到完善信息的页面,在回来会不执行onload方法。所以要在onShow重新调用onload方法[代码][代码] [代码][代码]wx.setStorageSync([代码][代码]"isScanOption"[代码][代码], options);[代码][代码] [代码][代码]isScan = 1;[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]isScan = 0;[代码][代码] [代码][代码]// wx.setStorageSync("createIsScanOption", null);[代码][代码] [代码][代码]clientMac = [代码][代码]""[代码][代码] [代码][代码]meetingGuid = app.globalData.meetingGuid;[代码][代码] [代码][代码]}[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]isScan: isScan[代码][代码] [代码][代码]})[代码][代码] [代码][代码]this[代码][代码].getMeetInfo(meetingGuid, clientMac, isScan, 2);[代码][代码] [代码][代码]// 如果存在 edit //表编辑页面需要获取参数[代码][代码] [代码][代码]if[代码] [代码](options && options.edit) {[代码][代码] [代码][代码]this[代码][代码].data.edit = [代码][代码]true[代码][代码];[代码][代码] [代码][代码]this[代码][代码].getVoteInfo(options.voteGuid);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]},[代码] 我发现了这个规律,因为我在某个页面写了个 [代码]onUnload: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]wx.switchTab({[代码][代码] [代码][代码]url: [代码][代码]'/pages/meet/meet'[代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码]当我扫码后进行一系列操作进入这个页面,退出小程序在扫码,就会出现以上我陈述的问题。 我好像明白逻辑了。他扫码后首先进入这个页面,然后跳转到扫码指定的路径时,就会执行onUnload这个方法,好笨哦,终于理清了。 再次提问,然而我的逻辑判断是错误的,只要退出小程序时上一个页面不是tab上的页面,就会跳到首页去,但是有一个二级页面又不会跳。找不到规律了,我知道我说的很乱。。。。哎。
2019-06-20