#### 微信掃碼登錄-內嵌版
1. 先引進wxLogin的cdn文件
~~~
<script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>
~~~
#### 2.跳中間頁來實現掃碼登錄:
例如在login.vue里面掃碼登錄,然后跳轉到loginSuccess.vue(中間頁),再跳轉到主頁面
2.1 在login.vue的代碼如下:
~~~
// 在template的代碼:
<div id="qrcode"></div>
// js
created () {
var obj = new WxLogin({
id: "qrcode",
appid: appID,
scope: "snsapi_login",
redirect_uri: "http%3A%2F%2Flaws.genesysinfo.net%3A8090%2F%23%2Floginsuccess",
state: "",
style: "black",
href: "data:text/css;base64,LmltcG93ZXJCb3ggLnFyY29kZSB7d2lkdGg6IDE4MHB4O21hcmlnbi10b3A6LThweH0KLmltcG93ZXJCb3ggLnRpdGxlIHtkaXNwbGF5OiBub25lO30KLmltcG93ZXJCb3ggLmluZm8ge2Rpc3BsYXk6IG5vbmU7fQ=="
});
}
~~~
鍵值說明:
1. Id: 是存放二維碼的容器,
2. appid: 是開發者在微信開房平臺提交申請后,獲得appid和一個秘鑰
3. scope: snsapi_login這個是代表網頁版
4. redirect_uri: 這個是掃碼后要跳轉的頁面,這個是要跳轉到loginsuccess頁面,這個路徑要urlEncode轉碼的,轉碼地址為(http://tool.phpshuo.com/UrlEncode.html), **注意,要跳轉的地址必須在申請的域名下面。**
5. style: 代表二維碼的樣式,有black和white可選,
6. href: 修改二維碼的樣式,要經過base64位轉碼,地址為(https://the-x.cn/base64/)。
2.2 在loginsuccess.vue的代碼如下:
~~~
// js代碼
created () {
let code=this.getUrlKey("code");
let state=this.getUrlKey("state");
this.getWeixin(code,state);
},
methods: {
// 公共方法
getUrlKey (name) {
return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ""])[1].replace(/\+/g, '%20')) || null;
},
// 通過code獲取微信信息
getWeixin(code,state){
util.ajax({
url:"url/userByCode?code=" + code,
data:''
})
.then((res)=>{
console.log(res.data)
})
.catch((err) => {
console.log(err)
})
},
}
~~~
3 在當前獲取用戶微信掃碼登錄的信息
~~~
// 這個代碼等于 2.1 + 2.2 的代碼
// 因為是在當前頁面添加code的,界面沒有刷新,只是添加參數,所以就必須監測路由參數的變化
watch: {
$route(){
if(this.$route.query.code!=undefined)
{
this.getWeixin(this.$route.query.code,this.$route.query.state);
}
}
}
~~~
- mui框架
- toast提示框的使用
- 星級評分
- 上拉刷新和下拉加載里超鏈接失效的原因
- confirm確認框的使用
- 取消下拉刷新和上拉加載的border
- 解決使用加載的方式捕捉不到dom
- css樣式篇
- css3實現0.5像素的邊框
- css3樣式中的border-radius的圓角邊框
- css面試篇之紅色十字架
- css樣式~~用圖片模擬單選框radio的功能
- div設置絕對定位以后,文字實現居中
- 設置input里面字體顏色和大小
- js知識篇
- javascript篇~~九九乘法表
- js~跳轉提示頁面
- js~實現60秒倒計時
- 正則表達式之保留小數點后兩位小數
- 數組操作方法篇
- Array.prototype.filter()的用法
- 使用正則去除空格
- jQuery知識篇
- jQuery~~模仿radio圖片切換
- 下拉菜單的滑動效果
- jQuery點擊切換字體顏色
- jQuery實現圖片和字體圖標顏色的切換
- 左側菜單之當前點擊菜單展開,其他菜單收縮
- jQuery全選或全部不選
- 實現子菜單的收縮和展開
- 小程序
- 小程序~調用豆瓣api數據的問題
- 實現毫秒級倒計時
- 條件渲染-wx:if語句
- 實現兩個頁面共存
- wxss樣式問題
- 修改按鈕默認的border-radius
- 移動端
- 安卓底部按鈕浮上來的解決方法
- excel(xlsx) to json
- vue
- 事件
- 某個元素的點擊事件
- 阻止子事件的冒泡
- excel文件的導入功能(解析成json數據)
- iview框架
- render函數
- iview不支持鍵盤事件的解決方法
- 路由傳參
- 搜索框template的基本寫法
- watch監聽
- 路由發生變化,數據沒有更新?
- 動態組件
- 刷新組件
- 前端小功能
- 搜索框
- axios
- axios公共請求方法
- cookie的簡單使用
- 微信掃碼登錄功能
- pc端微信掃碼登錄-內嵌網頁版
- MongoDB
- 安裝與配置
- 布局
- js判斷打開是PC端還是移動端
- 自適應布局方案-視口布局
- js實現加密和解密的公共方法
- js實現正則表達式匹配的文字加上標簽
- python
- 解決pip升級不成功的原因
- Django
- runserver 失敗的原因