安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

手把手教你调用微信扫一扫!三分钟包会

7月23日 红朱砂投稿
  这是我第一次公众号开发,本以为看着微信官方文档直接复制粘贴就好了,没想到是我天真了,爬过一个坑又入一个坑!就这么一个简单的事,竟然搞了一下午,所以写了这篇文章,希望可以帮到大家!
  第一步:引入weixinjssdk方式1:静态html引入
  直接在html文件内,使用script引入:方式二:vue单页面可以在主入口文件index。html内引入使用页面通过window。wx方式访问wx模块
  或者安装npminstallweixinjssdk引入importwxfromweixinjssdk
  第二步:权限验证配置wx。config({debug:true,开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId:xxxx,必填,公众号的唯一标识timestamp:xx,必填,生成签名的时间戳nonceStr:xx,必填,生成签名的随机串signature:xx,必填,签名jsApiList:〔scanQRCode〕必填,需要使用的JS接口列表});
  timestamp,nonceStr,signature重要信息请根据自己的公众号信息去获取。需要注意的是debug调试的时候,设置为true,会自动弹出配置成功或失败信息,调试时可以借助它。
  第三步:调用扫一扫接口
  我们在需要的按钮处,点击事件处开始调用扫码接口,如:scaneMethod(){varuanavigator。userAgent。toLowerCase()varisWeixinua。indexOf(micromessenger)!1if(!isWeixin){alert(请用微信打开连接,才可使用扫一扫)}window。wx。scanQRCode({needResult:1,默认为0,扫描结果由微信处理,1则直接返回扫描结果,scanType:〔qrCode,barCode〕,可以指定扫二维码还是一维码,默认二者都有success:function(res){扫码成功,跳转到二维码指定页面(res。resultStr为扫码返回的结果)location。hrefres。resultSvarscanres。resultStralert(scan)}},error:function(res){if(res。errMsg。indexOf(functionnotexist)0){alert(当前版本过低,请进行升级)}},})}
  做了一个判断处理,检查只有微信浏览器,其他浏览器不可以调用:varisWeixinua。indexOf(micromessenger)!1if(!isWeixin){alert(请用微信打开连接,才可使用扫一扫)}
  第四步:真机测试
  先声明一下,我的项目是vue单页面。
  真机测试的时候,一直在提示:
  errMsg:config:invalidsignature
  中文叫做签名无效。
  查找原因是因为我的签名获取来和官方微信js接口签名校验工具获取来的数据不一样,很明显获取的签名有问题,是因为我的url配置和前端调起接口的url不一致造成的。
  第五步:苹果手机测试
  苹果手机真机测试,提示错误信息为:
  thepermissionvalueisofflineverifying
  翻译为中文:权限值正在脱机验证
  这个错误原因是config没有正确执行。
  又继续去检查签名的问题,最后发现是后台接口字段写错了,欲哭无泪,总之还是签名信息错误。
  第六步:安卓正常,苹果点击无反应
  用安卓测试的时候,竟然好了,完美展示扫码结果,以为要好了。使用ios测试的时候,竟然发现点击的时候没有任何反应。
  找了半天原因,是因为window。location。href不同造成的。alert(window。location。href)
  测试结果:
  安卓:https:hp。。net
  IOS:https:hp。。net
  IOS手机就是因为url与签名配置处的url不同,所以导致config执行失败。究其原因是因为我的vuerouter是hash模式。
  解决方案:把我的hash模式换成history模式。记得后台也需要配置nginx。
  第七步:IOS扫码无反应
  当IOS能调起接口的那一刻,我以为要成功了,哪知道它就是要与安卓与众不同,扫码之后没有任何反应,但是如果你快速地连续多扫几次就会出现结果。
  你就说要命不?网上查找了半天,看见有的人说有延时,最后想干脆加个延时算了。letisAndriodua。indexOf(andriod)!1window。wx。scanQRCode({needResult:1,默认为0,扫描结果由微信处理,1则直接返回扫描结果,scanType:〔qrCode,barCode〕,可以指定扫二维码还是一维码,默认二者都有success:function(res){扫码成功,跳转到二维码指定页面(res。resultStr为扫码返回的结果)location。hrefres。resultSvarscanres。resultStrif(isAndriod){this。router。push({path:examcar,query:{id:scan}})}else{setTimeout((){this。router。push({path:examcar,query:{id:scan}})},500)}},error:function(res){if(res。errMsg。indexOf(functionnotexist)0){alert(当前版本过低,请进行升级)}},})
  果然加了延时之后就好了。
  第八步:扫码结果处理
  可能存在问题:
  1、iOS设备扫码正常,Android设备扫码后没反应
  2、Android设备扫码正常,iOS设备扫码后没反应
  原因:微信开发文档并没有说清楚,其实在微信后台可能是维护了2个接口,或者是对设备类型进行了区别,总之在回调函数中返回的结果封装对象并不是同一个,所以这要求我们也进行相应的处理,不然就会出现上面这种默认奇妙的问题。
  IOS返回结果:{errInfo:success,resaultStr:XX,errMsg:scanQRCode:ok}
  Android结果:{resaultStr:XX,errMsg:scanQRCode:ok}
  第九步:修改路由
  本以为苹果安卓手机都能够正常扫码,没问题了。但是领导换需求了,之前是扫码放到外边,可以匿名扫。现在要修改成登录之后才可以扫码。
  我就把路由修改了一下,先在登录页登录成功之后,再进入扫码页,后台也同步修改了url地址,修改完测试发现:
  安卓的一切正常。
  苹果手机坏了!
  奔溃了,看看错误提示:noPermissionJsApi:〔〕,errMsg:config:ok。
  确定之后有一个错误提示。
  errMsg:scanQRCode:theperssionvalueisofflineverifying
  一顿百度猛如虎,半天原地打转转!
  有前边一次经验教训,我就又去找地址的原因。最后发现是竟然router。push的跳转影响了我的url,在IOS上的push跳转不能写入浏览器的地址栏,但是安卓可以,导致安卓和ios跳转之后的地址不同,所以ios失败了。
  解决办法:router。push(i)修改成了window。locationwindow。location。protocolwindow。location。hosti
  此时就正常运行了。这下满足项目要求了,不会再出什么幺蛾子了!
  微信官方开发文档:https:developers。weixin。qq。comdocoffiaccountOAWebAppsJSSDK。html4
投诉 评论 转载

澳大利亚研究方脸比鸭蛋脸看起来更具攻击性,方脸年轻男性攻击性【环球时报综合报道】脸型如何影响别人对你的看法?据英国《每日邮报》4日报道,澳大利亚新南威尔士大学研究人员近期研究发现,方脸比鸭蛋脸看起来更具攻击性,特别是方脸的年轻男性看起来……探访苹果最神秘的设计团队果粉之家,专业苹果手机技术研究十年!您身边的苹果专家一直以来,苹果公司都以保密文化著称,不仅ApplePark的办公场所不允许外界拍照,同时还与大多数苹果员工签署了保密协……手把手教你调用微信扫一扫!三分钟包会这是我第一次公众号开发,本以为看着微信官方文档直接复制粘贴就好了,没想到是我天真了,爬过一个坑又入一个坑!就这么一个简单的事,竟然搞了一下午,所以写了这篇文章,希望可以帮到大家……js中平级数组和树形结构数据相互转换在实际的工作和业务需求中,我们经常会碰到树形数据结构,比如公司组织架构、组织层级、省市县或者事物的分类等等数据。那么在JavaScript中如何将数组转为树形结构和树形结构转为……彻底抛弃幻想!华为正式开启官翻二手机业务100原厂鸿蒙OS系【11月24日讯】相信大家都知道,自从遭受到芯片危机以后,华为手机业务就彻底折戟了,就连华为Nova系列、麦芒系列、畅享系列等机型都被出售给国内三大运营商以及其他国资企业,甚至……VC液冷散热红米K40S发布,红米K40惊现大米价改写发烧史总结来看2022年的最佳选择红米K40S新手机在骁龙870处理器功耗已经非常稳的情况下,总结来看2022年的最佳选择红米K40S新手机还增加了VC液冷散热系统,总结来看2022……从一穷二白到全球第一,京东方是怎么实现逆袭的?今年北京冬奥会的开幕式上,最受瞩目的可能就是那雪花形主火炬台,其采用96块小雪花形态和6块橄榄枝形态的LED双面屏组成,内有55万余颗LED灯珠,每一颗灯珠都由驱动芯片的单一信……iPhoneSE3通过认证A15处理器支持5G三月发布【PChome手机频道报道】多个新型号苹果设备通过了俄罗斯EEC监管机构的认证,这些设备被认为是苹果即将在3月春季发布会中所推出的新品。其中型号为A2595、A2783和A27……抖音电商促进农货产销对接,受邀参加全国精准扶贫典型案例研讨会9月28日,全国精准扶贫典型案例成果转化第五次视频研讨会召开。该研讨会以借鉴电商扶贫经验,解决农产品销售难,促脱贫户增收不返贫为交流方向,为下一步巩固脱贫成果、助力乡村振兴提供……外媒续航实测iPhone13ProMax进步显著,安卓这款机作为苹果的最新年度旗舰,iPhone13系列从即将发布到已发布,受到的关注度一直都是有增无减。而此次iPhone13系列最明显的升级点,除了A15芯片以外,就是把屏幕刷新率提到……60岁老人凌晨三点王者五杀?腾讯回应央视网消息:9月9日,腾讯成长守护平台微博发布公告就网传图片60岁老人凌晨三点排位一事作出回应,称经过近3天的筛查比对,最后成功锁定到1个游戏账号。从技术手段和实际验证结论来看……?思MindSpore蛋白质结构预测模型全球竞赛第一中国经济网北京4月22日讯(记者王惠绵)华为全场景AI框架?思MindSpore开源已有两年,通过架构创新,已经大幅提高了开发效率和科学计算性能。近日,基于全场景AI框架?思M……
联想杨元庆果然有一套继萨尔瓦多之后中非共和国成为第二个将比特币作为法币的国家新经济危机与绝对产能过剩(二)为何过剩在加速?如果股市又牛了,你还会留在头条写文章吗?红米note9pro能用多久?为什么任何时间都可以登录淘宝,淘宝不需要维护服务器吗?光伏风电等新能源板块爆发更改SQLServer2012数据库排序规则8点1氪丨B站回应直播部门裁员中科院回应停用知网优酷会员看新破解公益行业数字化三不足腾讯做了这些探索德邦百亿卖身背后,京东的阳谋与野心小米有哪些便宜又好用的手机?面试到底试什么一天赚1000的项目,很暴力的项目有哪些大黑十纸币价格还会上涨吗房产公证要有法律效力吗?益智玩具店创业计划书交强险的收费标准是多少?天已微凉,我已长大伤感散文一个人靠不靠谱,就看这7个细节擅自损毁他人财物鉴定规定是什么?感情伤的哲理句子精辟初一3篇英语作文180词暑假华为智选VOC智能门锁S体验给家人最便捷的回家新体验

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利