詳解在vue使用weixin-js-sdk常見使用方法
1.導(dǎo)入依賴包
npm install weixin-js-sdk
2.判斷是否是在微信瀏覽器中
env.js
<script>
var ua = navigator.userAgent.toLowerCase();
var isWeixin = ua.indexOf('micromessenger') != -1;
var isAndroid = ua.indexOf('android') != -1;
var isIos = (ua.indexOf('iphone') != -1) || (ua.indexOf('ipad') != -1);
if(!isWeixin) {
document.head.innerHTML = '<title>抱歉,出錯了</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0"><link rel="stylesheet" type="text/css" rel="external nofollow" >';
document.body.innerHTML = '<div class="weui_msg"><div class="weui_icon_area"><i class="weui_icon_info weui_icon_msg"></i></div><div class="weui_text_area"><h4 class="weui_msg_title">請?jiān)谖⑿趴蛻舳舜蜷_鏈接</h4></div></div>';
}
在main.js中引用:
import env from "./env";//運(yùn)行環(huán)境
微信登錄,通過code換取openid,在起始頁使用該方法:
<script>
methods:{
// 微信登陸
wxLogin() {
var that = this;
axios
.get("/common/loginAuth")
.then(function(res) {
console.log("后臺返回的鏈接地址", res.data);
window.location.href = res.data;//跳轉(zhuǎn)后臺返回的鏈接地址
})
.catch(function(error) {});
},
//換取用戶信息
postCode(res) {
var that = this;
axios
.post("/common/getUserInfo", {
code: res
})
.then(function(res) {
cookie.set("openid", res.data.openid);//code像后臺換取openid并存入
})
.catch(function(error) {
console.log(error);
});
}},
created() {
var r = window.location.href;//獲取當(dāng)前鏈接,拆分當(dāng)前鏈接
//當(dāng)前鏈接地址為后臺返回的參數(shù),有拆分得到鏈接中的code,通過postCode()方法獲取openid,沒有則通過wxLogin()方法開始微信登錄
if (r.indexOf("?") != -1) {
r = r.split("?");
r = r[1].split("&");
r = r[0].split("=");
r = r[1];
} else {
this.wxLogin();
}
if (r) {
this.postCode(r);
} else {
this.wxLogin();
}
},
</script>
3.前端頁面使用
import wx from 'weixin-js-sdk'
this.axios({
method: 'post',
url: 'url',
data:{ url:location.href.split('#')[0] } //向服務(wù)端提供授權(quán)url參數(shù),并且不需要#后面的部分
}).then((res)=>{
wx.config({
debug: true, // 開啟調(diào)試模式,
appId: res.appId, // 必填,企業(yè)號的唯一標(biāo)識,此處填寫企業(yè)號corpid
timestamp: res.timestamp, // 必填,生成簽名的時間戳
nonceStr: res.nonceStr, // 必填,生成簽名的隨機(jī)串
signature: res.signature,// 必填,簽名,見附錄1
jsApiList: ['scanQRCode'] // 必填,需要使用的JS接口列表,所有JS接口列
});
})
到此這篇關(guān)于 詳解在vue使用weixin-js-sdk常見使用方法的文章就介紹到這了,更多相關(guān)vue weixin-js-sdk內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vuex刷新之后數(shù)據(jù)丟失,數(shù)據(jù)持久化,vuex-persistedstate問題
這篇文章主要介紹了vuex刷新之后數(shù)據(jù)丟失,數(shù)據(jù)持久化,vuex-persistedstate問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
vue常用指令實(shí)現(xiàn)學(xué)生錄入系統(tǒng)的實(shí)戰(zhàn)
本文主要介紹了vue常用指令實(shí)現(xiàn)學(xué)生錄入系統(tǒng)的實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02
解決vue初始化項(xiàng)目時,一直卡在Project description上的問題
今天小編就為大家分享一篇解決vue初始化項(xiàng)目時,一直卡在Project description上的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
Antd-vue Table組件添加Click事件,實(shí)現(xiàn)點(diǎn)擊某行數(shù)據(jù)教程
這篇文章主要介紹了Antd-vue Table組件添加Click事件,實(shí)現(xiàn)點(diǎn)擊某行數(shù)據(jù)教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
Vue無后端配合實(shí)現(xiàn)導(dǎo)出功能的示例代碼
這篇文章主要為大家詳細(xì)介紹了Vue如何在無后端配合的情況下實(shí)現(xiàn)導(dǎo)出功能,文中的示例代碼簡潔易懂,有需要的小伙伴可以跟隨小編一起了解一下2024-01-01
element-ui中select組件綁定值改變,觸發(fā)change事件方法
今天小編就為大家分享一篇element-ui中select組件綁定值改變,觸發(fā)change事件方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08

