您好,登錄后才能下訂單哦!
uni-app 介紹
uni-app 是一個使用 Vue.js 開發(fā)跨平臺應(yīng)用的前端框架。
適用平臺:Android、iOS、微信小程序。實現(xiàn)了一套代碼,同時發(fā)布到Android、iOS、微信小程序。
參考官方:https://uniapp.dcloud.io/
APP微信授權(quán)
檢測服務(wù)商
檢測手機上是否安裝微信、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)化用戶體驗,使用 wx.getUserInfo 接口直接彈出授權(quán)框的開發(fā)方式將逐步不再支持。從2018年4月30日開始,小程序與小游戲的體驗版、開發(fā)版調(diào)用 wx.getUserInfo 接口,將無法彈出授權(quán)詢問框,默認(rèn)調(diào)用失敗。正式版暫不受影響。開發(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)頁面uni.login獲取code
(2)后端通過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)測
<!-- #ifdef MP-WEIXIN --> <button class="" @click="checkLogin">微信登錄檢測</button> <!-- #endif --> checkLogin: function() { wx.checkSession({ success() { console.log('ok'); // session_key 未過期,并且在本生命周期一直有效 }, fail() { // session_key 已經(jīng)失效,需要重新執(zhí)行登錄流程 //wx.login() // 重新登錄 console.log('expire'); } }) },
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。