vue中调用微信扫一扫功能(兼容IOS)

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);
	});
},

 

 

 

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现Vue企业内部应用拉起企业微信扫一扫,你可以按照以下步骤进行操作: 1. 在Vue应用引入企业微信提供的JS-SDK依赖。可以使用npm或yarn进行安装,例如:`npm install weixin-js-sdk`。 2. 在Vue组件的`mounted`钩子函数调用企业微信提供的`wx.config`方法,传入相应的配置参数。配置参数包括`corpId`(企业ID)、`agentId`(应用ID)、`jsApiList`(需要使用的API列表)等。 ```javascript import wx from 'weixin-js-sdk'; export default { mounted() { wx.config({ // 企业ID corpId: 'YOUR_CORP_ID', // 应用ID agentId: 'YOUR_AGENT_ID', // 需要使用的API列表 jsApiList: ['scanQRCode'] }); }, methods: { scanQRCode() { wx.scanQRCode({ needResult: 1, scanType: ['qrCode', 'barCode'], success: function (res) { const result = res.resultStr; console.log('扫码结果:', result); // 在这里处理扫码结果 }, fail: function (err) { console.error('扫码失败:', err); // 处理扫码失败的情况 } }); } } } ``` 3. 在需要拉起企业微信扫一扫的地方,添加一个按钮或其他交互元素,并绑定一个点击事件。例如: ```html <template> <div> <button @click="scanQRCode">拉起扫一扫</button> </div> </template> ``` 4. 在Vue组件的`methods`定义 `scanQRCode` 方法,该方法将调用企业微信提供的 `wx.scanQRCode` 方法来拉起扫一扫功能,并处理扫码结果。 5. 至此,当用户点击 "拉起扫一扫" 按钮时,会调用 `scanQRCode` 方法,从而拉起企业微信扫一扫功能,并在成功回调处理扫码结果。 请确保在企业微信后台进行相应的配置,包括设置JS-SDK权限、配置可信域名、配置安全域名等。 希望对你有所帮助!如果你还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值