詳解在vue使用weixin-js-sdk常見(jiàn)使用方法
1.導(dǎo)入依賴(lài)包
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>抱歉,出錯(cuò)了</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">請(qǐng)?jiān)谖⑿趴蛻?hù)端打開(kāi)鏈接</h4></div></div>'; }
在main.js中引用:
import env from "./env";//運(yùn)行環(huán)境
微信登錄,通過(guò)code換取openid,在起始頁(yè)使用該方法:
<script> methods:{ // 微信登陸 wxLogin() { var that = this; axios .get("/common/loginAuth") .then(function(res) { console.log("后臺(tái)返回的鏈接地址", res.data); window.location.href = res.data;//跳轉(zhuǎn)后臺(tái)返回的鏈接地址 }) .catch(function(error) {}); }, //換取用戶(hù)信息 postCode(res) { var that = this; axios .post("/common/getUserInfo", { code: res }) .then(function(res) { cookie.set("openid", res.data.openid);//code像后臺(tái)換取openid并存入 }) .catch(function(error) { console.log(error); }); }}, created() { var r = window.location.href;//獲取當(dāng)前鏈接,拆分當(dāng)前鏈接 //當(dāng)前鏈接地址為后臺(tái)返回的參數(shù),有拆分得到鏈接中的code,通過(guò)postCode()方法獲取openid,沒(méi)有則通過(guò)wxLogin()方法開(kāi)始微信登錄 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.前端頁(yè)面使用
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, // 開(kāi)啟調(diào)試模式, appId: res.appId, // 必填,企業(yè)號(hào)的唯一標(biāo)識(shí),此處填寫(xiě)企業(yè)號(hào)corpid timestamp: res.timestamp, // 必填,生成簽名的時(shí)間戳 nonceStr: res.nonceStr, // 必填,生成簽名的隨機(jī)串 signature: res.signature,// 必填,簽名,見(jiàn)附錄1 jsApiList: ['scanQRCode'] // 必填,需要使用的JS接口列表,所有JS接口列 }); })
到此這篇關(guān)于 詳解在vue使用weixin-js-sdk常見(jiàn)使用方法的文章就介紹到這了,更多相關(guān)vue weixin-js-sdk內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vuex刷新之后數(shù)據(jù)丟失,數(shù)據(jù)持久化,vuex-persistedstate問(wèn)題
這篇文章主要介紹了vuex刷新之后數(shù)據(jù)丟失,數(shù)據(jù)持久化,vuex-persistedstate問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03vue常用指令實(shí)現(xiàn)學(xué)生錄入系統(tǒng)的實(shí)戰(zhàn)
本文主要介紹了vue常用指令實(shí)現(xiàn)學(xué)生錄入系統(tǒng)的實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02解決vue初始化項(xiàng)目時(shí),一直卡在Project description上的問(wèn)題
今天小編就為大家分享一篇解決vue初始化項(xiàng)目時(shí),一直卡在Project description上的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10vue正確使用watch監(jiān)聽(tīng)屬性變化方式
這篇文章主要介紹了vue正確使用watch監(jiān)聽(tīng)屬性變化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04Antd-vue Table組件添加Click事件,實(shí)現(xiàn)點(diǎn)擊某行數(shù)據(jù)教程
這篇文章主要介紹了Antd-vue Table組件添加Click事件,實(shí)現(xiàn)點(diǎn)擊某行數(shù)據(jù)教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11Vue無(wú)后端配合實(shí)現(xiàn)導(dǎo)出功能的示例代碼
這篇文章主要為大家詳細(xì)介紹了Vue如何在無(wú)后端配合的情況下實(shí)現(xiàn)導(dǎo)出功能,文中的示例代碼簡(jiǎn)潔易懂,有需要的小伙伴可以跟隨小編一起了解一下2024-01-01vue中解決el-date-picker更改樣式不生效問(wèn)題
在使用Vue.js進(jìn)行前端開(kāi)發(fā)的過(guò)程中,Element?UI?是一個(gè)非常流行的UI庫(kù),它提供了一套完整的組件來(lái)快速搭建美觀的用戶(hù)界面,但是我們經(jīng)常遇到一個(gè)問(wèn)題使用Element?UI提供的el-date-picker組件時(shí),嘗試自定義其樣式卻無(wú)法生效,所以本文給大家介紹如何解決這個(gè)問(wèn)題2024-10-10element-ui中select組件綁定值改變,觸發(fā)change事件方法
今天小編就為大家分享一篇element-ui中select組件綁定值改變,觸發(fā)change事件方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08