场景:使用uniapp开发微信公众号网页,调用wx.scanQRCode()方法实现扫码功能,出现安卓手机正常扫码,苹果手机无法扫码,需要手动刷新页面后才可以扫码的问题。

点击菜单跳转路由的逻辑代码,最初是使用uni.navigateTo()方法跳转,所以出现了苹果手机无法扫码,需要手动刷新页面才可以扫码的问题,后来改成了window.location.href的方式跳转就解决了这个问题。

出现这个问题的原因主要是:跟你传给微信的url有关,微信会获取你的页面当前的url(即document.location.href)和你传给它的url做比较,当相同时,这个config才会成功,这个你可以通过在error函数里把信息alert出来判断出来。
所以你需要在路由切换时重新执行一次config。
而又由于在ios和android中,document.location.href在spa页面的机制不同(不同在于ios是只要不刷新页面,href就不会改变),所以你要对相应的系统做适配。
——参考文章:https://segmentfault.com/q/1010000011775457

goMenuItemPage(item, i) {let url;item.url ? url = item.url : url = `/pages/menuItem/menuItem?menuListId=${i}`// uni.navigateTo({//  url// })// 跳转到扫码页面,使用window.location.href方式跳转,否则IOS系统wx.config会报错,说signature签名失败window.location.href = url;}

微信扫码的逻辑

wxScanCode() {this.$u.api.getWxConfigInfo({appId: this.vuex_appId,url: window.location.href.split('#')[0]}).then(res => {this.wx = require('jweixin-module');this.wx.config({debug: false,appId: res.data.data.appId,timestamp: res.data.data.timestamp,nonceStr: res.data.data.nonceStr,signature: res.data.data.signature,jsApiList: ["scanQRCode"]});this.wx.ready(() => {// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。// 微信扫码this.wx.scanQRCode({needResult: 1, // 0:扫描结果由微信处理;1:直接返回扫描结果;scanType: ["qrCode", "barCode"], // 扫码类型。qrCode:二维码;barCode:一维码;success: res => {if (res.resultStr.includes(',')) {this.meterNo = res.resultStr.split(',')[1];} else {this.meterNo = res.resultStr}this.search();},error: err => {console.log(err)}});});this.wx.error(err => console.log('扫码错误~~', err))}).catch(err => {console.log(err)})},

uniapp调用wx.scanQRCode()方法,安卓手机正常,苹果手机异常的问题相关推荐

  1. 手机投屏到电视的5种方法_安卓手机、苹果手机投屏到电视史上最全的方法

    安卓手机和苹果iPhone手机怎么投屏到电视?楼主汇总了5种投屏方法,这应该是史上最全的了.一共有5种投屏方法,大家可以选择适合自己的.方法一:iPhone手机自带的投屏功能 AirPlay 优点:快 ...

  2. 动态壁纸安卓_网红文字时钟手机版来了!安卓手机和苹果手机都可以使用!

    今天,我们分享一下最近网上非常火的网红文字时钟手机设置方法.上次,我们为大家分享了Word Clock文字时钟电脑屏保,刚推送就有小伙伴留言要手机版的,不负所望,手机版终于来了! 首先我们看看效果图! ...

  3. 网红文字时钟手机版来了!安卓手机和苹果手机都可以使用!

    今天,我们分享一下最近网上非常火的网红文字时钟手机设置方法.上次,我们为大家分享了Word Clock文字时钟电脑屏保,刚推送就有小伙伴留言要手机版的,不负所望,手机版终于来了! 首先我们看看效果图! ...

  4. 一个二维码自动识别安卓手机和苹果手机

    最近做个功能需要安卓手机和苹果手机扫描同一个二维码时,跳转到不同的地址进行下载,刚开始我想的是用js进行判断手机的设备而进行跳转.不过后来发现,网上已经有做好的功能了.二百二二维码 方法二:用js判断 ...

  5. 敬业签电脑手机云同步便签及安卓手机和苹果手机云同步桌面便签

    敬业签桌面便签软件 敬业签是具有代表性.领先的第三代互联网桌面便签软件,能够实现随手记录便签内容.自动云同步.云存储功能,并附带公历/农历定时提醒待办事项.按天.周.月.季.年循环重复提醒和重要事项循 ...

  6. 微信小程序wx.createInnerAudioContext()在安卓手机不能播放语音文件问题解决

    本文介绍小程序安卓手机播放语音文件错误问题的分析过程与解决方案,该问题出现较多,问题隐藏较深,按本文方案可以解决该问题. 一.问题现象 微信小程序已经放弃了基于wx.createAudioContex ...

  7. android解压rar方法,安卓手机如何解压rar/zip/7z等压缩包 详细图解教程

    由于宅男吧论坛的资源大部分是通过 不过教程最后,关于(7z.001.7z.002之类的分卷文件),像这种分卷文件, 当时想着软件都是"教科式"操作,应该一看就会用了,可是依旧有部分 ...

  8. android 视频压缩方法,安卓手机视频压缩的方法,手机视频压缩神器 - 狸窝

    平时用的安卓系统的手机想要把内存大的视频上传网盘极其不方便,有没有什么办法压缩视频?有什么好用的手机视频压缩软件吗?小编这里有一款很多用的手机视频压缩软件可以推荐出来并且附有有操作方法.视频压缩软件安 ...

  9. uniapp,H5下,安卓手机视频播放自动全屏问题

    禁止安卓手机播放自动全屏 1,需要给video标签添加禁止参数 t7-video-player-type="inline"webkit-playsinline="true ...

最新文章

  1. KubeEdge向左,K3S向右
  2. windows下的MySql实现读写分离
  3. svg 动画_根据AI导出的SVG path制作SVG线条动画
  4. static关键字(pass)
  5. js变量按照存储方式区分,有哪些类型,并表述其特点
  6. CF651A Joysticks
  7. mysql导出数据库视频教程_Navicat怎样导入导出sql文件?(图文步骤+视频教程)...
  8. 安卓手机修改ip软件_为什么苹果手机不用杀毒软件?安卓表示要哭了
  9. java超市管理系统ppt_基于java-web的超市管理系统毕业答辩ppt课件
  10. cesium 经纬度绘制点_Cesium搜索经纬度并标点
  11. FFmpeg基础:视频流转图片
  12. C语言中函数的基本知识
  13. 精益生产管理专家——安岷老师
  14. 拳王虚拟项目公社:你最重要的事情是什么?
  15. oracle 范鑫_自己写得一个类似AUL的工具,附源代码(C 语言)
  16. html手机支付案例,实例讲述Ecshop实现的支付宝手机网页支付功能
  17. 爬取淘宝历史价格,通过请求接口,获取到数据
  18. 搜索词纠错(拼写检查)、相关搜索的原理与实现
  19. 最短路径算法|Dijkstra‘s Algorithm
  20. 远程VPS和本地电脑之间无法粘贴复制及分享文件

热门文章

  1. 教师节应用推荐:献给人类灵魂的工程师
  2. VM虚拟机-三种网络连接方式(桥接、NAT、仅主机模式
  3. 如何设置笔记本电脑扩展屏幕的亮度
  4. uniapp实现位置授权并打开地图选择位置信息
  5. opencv相机标定(1)-畸变校正原理
  6. 软件工程项目——黄金矿工
  7. 烤仔同传 | 富豪收割机是怎样炼成的?麦道夫“巫术”大揭秘
  8. ArcGIS 10.5安装详细教程含安装包
  9. 右键实现打开对应的软件
  10. 62 过去完成时+过去完成进行时