uni-app开发微信公众号 H5打开扫一扫功能

<!--引入微信sdk-->
<script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
clickScanCode() {
			let url = window.location.href.split('#')[0];
			newApi.getSignature({ url }).then(res => {
				if (res.code == 0) {
					this.sdk.config({
						beta: true, // 必须这么写,否则wx.invoke调用形式的jsapi会有问题
						debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
						appId: res.data.appId, // 必填,公众号的唯一标识
						timestamp: res.data.timestamp, // 必填,生成签名的时间戳
						nonceStr: res.data.nonceStr, // 必填,生成签名的随机串
						signature: res.data.signature,// 必填,签名
						jsApiList: ["scanQRCode"] // 必填,需要使用的JS接口列表
					});
					this.sdk.ready(() => {
						// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
						this.sdk.checkJsApi({
							jsApiList: [
								'scanQRCode',
							],
							success: (res) => {
								console.log("jweixin.ready", res)
								if (res.checkResult.getLocation == false) {
									console.log('微信版本低')
									return;
								}
							}
						});
						this.sdk.error((err) => {
							this.sdk.error("接口调取失败", err)
						});
						this.sdk.scanQRCode({
							desc: 'scanQRCode desc',
							needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
							scanType: ["qrCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
							success: (r) => {
								window.location.href = r.resultStr
							},
							error: function (error) {
								if (error.errMsg.indexOf('function_not_exist') > 0) {
									alert('版本过低请升级')
								}
							}
						});
					});
				}
			})
		}

你可能感兴趣的:(Uni-app,uni-app,微信,javascript)