跳到主要内容

移动端开发

企业微信扫一扫(JS-SDK开发)

// 第一步:导入JS-SDK:
import wx from 'weixin-js-sdk';

//第二步:判断是否微信浏览器打开,注入验证配置
var ua = navigator.userAgent.toLowerCase();
var isWeixin = ua.indexOf('micromessenger') !== -1;
if (isWeixin) {
// 是企业微信访问
this.isWeixin = isWeixin;

// 注入验证配置
let url = '';
url = window.location.href.split('#')[0];
request({
url: '/api/assets/common/getWxconfig',
method: 'get',
data: {
url: url
},
}).then(res => {
if (res.code == 200 && res.data) {
const _data = res.data;
if (_data) {
wx.config({
beta: true, // 必须这么写,否则wx.invoke调用形式的jsapi会有问题
debug: false, // 开启调试模式,
appId: _data.appId, // 必填,企业号的唯一标识
timestamp: _data.timestamp, // 必填,生成签名的时间戳
nonceStr: _data.nonceStr, // 必填,生成签名的随机串
signature: _data.signature, // 必填,签名
jsApiList: ['checkJsApi', 'scanQRCode'], // 必填,需要使用的JS接口列表
});
wx.ready(() => {
console.log('成功')
})
wx.error(function(res) {
console.log('出错了:' + res.errMsg); //wx.config配置错误,会弹出窗口哪里错误,然后根据微信文档查询即可。
});
}
}
console.log(res);
}).catch(() => {})
}


//第三步:调用企业微信扫一扫wx.scanQRCode
scanCodeWX() {
let _this = this
wx.scanQRCode({
desc: '扫一扫查看资产详情',
needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
scanType: ['qrCode', 'barCode'], // 可以指定扫二维码还是一维码,默认二者都有
success: function(res) {
// 回调
if (res.resultStr) {
_this.qrCodeRes = res.resultStr
_this.initData(res.resultStr);
} else {
uni.showModal({
title: '扫码结果',
showCancel: false,
content: "空值",
});
}
// 打印结果 使用alert在微信浏览器中是不生效的
},
fail: function(res) {
uni.showModal({
title: '扫描失败',
showCancel: false,
content: res,
});
console.log("扫描失败", res)
},
});
},