前言:
目前看官们对“vue调用手机摄像头扫码”大概比较关注,咱们都需要剖析一些“vue调用手机摄像头扫码”的相关内容。那么小编也在网上网罗了一些关于“vue调用手机摄像头扫码””的相关文章,希望同学们能喜欢,大家快快来学习一下吧!wxsdk的添加
//使用yarn进行添加
yarn add weixin-js-sdk
//使用npm进行添加
npm install weixin-js-sdk
1、在APP.vue中获取页面的url
//在APP.vue中获取页面的url//其原因:是为兼用IOS中获取页面进行签名,导致签名失败的问题created () { window.localStorage.setItem('scanUrl',location.href.split('#')[0])}
2、vue前端,获取微信签名信息,为使用微信扫一扫功能做准备
import wx from 'weixin-js-sdk'/** * 获取微信签名信息 */getSign() { //解决ios第一次无法调用微信扫一扫的功能,如果直接使用location.href.split('#')[0]进行获取链接的话,在IOS系统中第一次可能会无法进行正常的签名操作。 //原因:微信会对IOS页面链接做处理,虽然使用location.href.split('#')[0]获取输出的链接,为当前的页面,但是实际上,在IOS页面的链接,并不是这一个链接,所以会导致签名失败的情况 let purl = /(Android)/i.test(navigator.userAgent) ? location.href.split('#')[0] : window.localStorage.getItem('scanUrl'); let dataForm = { 'url': purl } this.showLoadding('正在加载配置文件,请稍后'); //请求后端,获取微信签名信息 getWxSign(dataForm).then((res) => { if (res.success == true) { let configData = { debug: false, appId: res.result.appId, // 必填,公众号的唯一标识 timestamp: "" + res.result.timestamp, // 必填,生成签名的时间戳 nonceStr: res.result.nonceStr, // 必填,生成签名的随机串 signature: res.result.signature,// 必填,签名 jsApiList: ['scanQRCode', 'checkJsApi'] } wx.config(configData); } else { failedTip("获取签名信息失败,请刷新页面重新获取"); } this.clearLoadding(); }); },
3、vue前端,调用微信扫一扫功能
/** * 调用微信扫一扫功能 */scan() { let _that = this; wx.ready(function () { wx.checkJsApi({ jsApiList: ['scanQRCode'], success: function (res) { if (res.checkResult.scanQRCode === true) { wx.scanQRCode({ // 微信扫一扫接口 needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果, scanType: ['qrCode', 'barCode'], // 可以指定扫二维码还是一维码,默认二者都有 success: function (res) { let url = res.resultStr // 当needResult 为 1 时,扫码返回的结果 console.log(url)//url为扫码后返回的信息 } }) } else { failedTip("抱歉,当前客户端版本不支持扫一扫"); } }, fail: function (res) { // 检测getNetworkType该功能失败时处理 failedTip('fail' + res) } }); }); //错误信息 wx.error(function (res) { failedTip("出错了:" + res.errMsg); });},
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #vue调用手机摄像头扫码 #vue实现手机扫码功能 #vue调用微信扫一扫