vue单页面引用 weixin-js-sdk 以及授权页面
根据文档main.js中npm install weixin-js-sdkimport wx from ‘weixin-js-sdk’;Vue.prototype.$wx = wx;//写不写这个在组件中引用wx的时候都是undefined解决方法:在需要的页面直接 import wx from ‘weixin-js-sdk’;但是像一些分享功能需要每个页面都...
·
根据文档
main.js中
npm install weixin-js-sdk
import wx from ‘weixin-js-sdk’;
Vue.prototype.$wx = wx; //写不写这个 在组件中引用wx的时候都是undefined
解决方法:
在需要的页面 直接 import wx from ‘weixin-js-sdk’;
但是像一些分享功能需要每个页面都要用这种方式就不可取了
我的做法:直接在public静态文件夹中放一个微信的sdk直接引入,全局都能用wx
接下来得获取微信签名
传统的jq项目都是只要把当前页面给服务端就行了,vue项目因为是单页面应用,路由采用hash的模式(history这里不讨论),只要将锚点前面的传给服务器就可以了
还有一个问题
很多博客说是每个路由切换的时候都得重新config,比较麻烦,直接将获取微信签名放入index.html页面底部代码如下:
<script>
// // 获取微信签名
console.log(wx)
var _getWechatSignUrl = location.protocol + "//" + 'tstgo.u-breath.cn'+'/Wapi/Pfdevice/configJsSdk';
axios.post(_getWechatSignUrl, {
html:'index.html' (这个具体传什么要跟后台商量 我这边只要index。htm就行了 有些是还要加上域名的)
})
.then(function (res) {
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: res.data.data.appid, // 必填,公众号的唯一标识
timestamp: res.data.data.time, // 必填,生成签名的时间戳
nonceStr: res.data.data.noncestr, // 必填,生成签名的随机串
signature: res.data.data.sha1, // 必填,签名,见附录1
jsApiList: [ 'scanQRCode'
]
// 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
console.log(res.data.data);
})
.catch(function (error) {
console.log(error);
});
</script>
接下来就是组件中的调用(分享功能可以写上面index.html里)
methods: {
//扫一扫的方法
scanning(){
// this.weixinApi.scanCode(res=>{
// console.log('sao')
// })
console.log('12322')
wx.ready(function() {
wx.scanQRCode({
needResult: 1,
// scanType: ["qrCode","barCode"],
success: function(res) {
var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
// result=result.split(",");
console.log(result[1])
},
fail: function(res) {
console.log(res,'222222')
}
});
})
}
},
更多推荐
已为社区贡献23条内容
所有评论(0)