uni-app之APP和小程序微信授權(quán)方法
uni-app 介紹
uni-app 是一個(gè)使用 Vue.js 開(kāi)發(fā)跨平臺(tái)應(yīng)用的前端框架。
適用平臺(tái):Android、iOS、微信小程序。實(shí)現(xiàn)了一套代碼,同時(shí)發(fā)布到Android、iOS、微信小程序。
參考官方:https://uniapp.dcloud.io/
APP微信授權(quán)
檢測(cè)服務(wù)商
檢測(cè)手機(jī)上是否安裝微信、QQ、新浪微博等。
uni.getProvider({
service: 'oauth',
success: function (res) {
console.log(res.provider);
}
});

授權(quán)登錄
獲取openid,(unionid)等
uni.login({
provider: 'weixin',
success: function (loginRes) {
console.log(JSON.stringify(loginRes));
}
});
獲取用戶信息
uni.getUserInfo({
provider: 'weixin',
success: function(infoRes) {
console.log('-------獲取微信用戶所有-----')
console.log(JSON.stringify(infoRes.userInfo));
}
});
示例代碼
<!-- #ifdef APP-PLUS -->
<button class="" @click="appLogin">APP微信授權(quán)登錄</button>
<!-- #endif -->
appLogin: function() {
uni.getProvider({
service: 'oauth',
success: function(res) {
console.log(res.provider);
//支持微信、qq和微博等
if (~res.provider.indexOf('weixin')) {
uni.login({
provider: 'weixin',
success: function(loginRes) {
console.log('-------獲取openid(unionid)-----');
console.log(JSON.stringify(loginRes));
// 獲取用戶信息
uni.getUserInfo({
provider: 'weixin',
success: function(infoRes) {
console.log('-------獲取微信用戶所有-----');
console.log(JSON.stringify(infoRes.userInfo));
}
});
}
});
}
}
});
},
小程序微信授權(quán)
獲取用戶基本信息
為優(yōu)化用戶體驗(yàn),使用 wx.getUserInfo 接口直接彈出授權(quán)框的開(kāi)發(fā)方式將逐步不再支持。從2018年4月30日開(kāi)始,小程序與小游戲的體驗(yàn)版、開(kāi)發(fā)版調(diào)用 wx.getUserInfo 接口,將無(wú)法彈出授權(quán)詢問(wèn)框,默認(rèn)調(diào)用失敗。正式版暫不受影響。開(kāi)發(fā)者可使用以下方式獲取或展示用戶信息。
小程序使用 button 組件,并將 open-type 指定為 getUserInfo 類型,獲取用戶基本信息。
參考官方:https://developers.weixin.qq.com/miniprogram/dev/component/button.html
示例代碼:
<!-- #ifdef MP-WEIXIN -->
<button class="" open-type="getUserInfo" @getuserinfo="wxGetUserInfo" withCredentials="true">微信授權(quán)獲取用戶信息</button>
<!-- #endif -->
wxGetUserInfo:function(res){
if (!res.detail.iv) {
uni.showToast({
title: "您取消了授權(quán),登錄失敗",
icon: "none"
});
return false;
}
console.log('-------用戶授權(quán),并獲取用戶基本信息和加密數(shù)據(jù)------')
console.log(res.detail);
},
微信登錄
參考官方:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html
(1)頁(yè)面uni.login獲取code
(2)后端通過(guò)code獲取sessionKey、openid(unionid)等,后端調(diào)用接口如下:
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
(3)示例代碼
<!-- #ifdef MP-WEIXIN -->
<button class="" @click="wxLogin">微信登錄</button>
<!-- #endif -->
wxLogin: function() {
uni.login({
provider: 'weixin',
success: function(loginRes) {
console.log('-------獲取code-------')
console.log(loginRes.code);
wx.request({
url: 'https://xxxxx'+loginRes.code,
success: function(info) {
console.log('-------獲取sessionKey、openid(unionid)-------')
console.log(info);
},
fail: function(e) {
console.log(e)
}
})
}
});
}
微信登錄狀態(tài)監(jiān)測(cè)
<!-- #ifdef MP-WEIXIN -->
<button class="" @click="checkLogin">微信登錄檢測(cè)</button>
<!-- #endif -->
checkLogin: function() {
wx.checkSession({
success() {
console.log('ok');
// session_key 未過(guò)期,并且在本生命周期一直有效
},
fail() {
// session_key 已經(jīng)失效,需要重新執(zhí)行登錄流程
//wx.login() // 重新登錄
console.log('expire');
}
})
},
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript實(shí)現(xiàn)隨機(jī)點(diǎn)名網(wǎng)頁(yè)
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)隨機(jī)點(diǎn)名網(wǎng)頁(yè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
javascript 10進(jìn)制和62進(jìn)制的相互轉(zhuǎn)換
本節(jié)主要介紹了javascript 10進(jìn)制和62進(jìn)制的相互轉(zhuǎn)換,需要的朋友可以參考下2014-07-07
JavaScript中alert的使用方法超詳細(xì)介紹
JS中的alert作用是在瀏覽器中彈出一個(gè)警告框,而使用alert有三種方式,不同的方式所呈現(xiàn)的效果也不相同,這篇文章主要給大家介紹了關(guān)于JavaScript中alert使用方法的相關(guān)資料,需要的朋友可以參考下2024-01-01
JavaScript面向?qū)ο笾叽蠡驹瓌t實(shí)例詳解
這篇文章主要介紹了JavaScript面向?qū)ο笾叽蠡驹瓌t,結(jié)合實(shí)例形式詳細(xì)分析了JavaScript面向?qū)ο笃叽蠡驹瓌t,包括單一職責(zé)、開(kāi)閉原則、里氏替換、依賴倒置、接口隔離、迪米特法則及組合/聚合復(fù)用原則,需要的朋友可以參考下2020-05-05
JavaScript事件學(xué)習(xí)小結(jié)(三)js事件對(duì)象
這篇文章主要介紹了JavaScript事件學(xué)習(xí)小結(jié)(三)js事件對(duì)象的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
js實(shí)現(xiàn)圖片無(wú)縫滾動(dòng)特效
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)圖片無(wú)縫循環(huán)滾動(dòng)特效的相關(guān)資料,本實(shí)例在網(wǎng)頁(yè)中較為常見(jiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-01-01

