您好,登錄后才能下訂單哦!
uni-app 介紹
uni-app 是一個使用 Vue.js 開發跨平臺應用的前端框架。
適用平臺:Android、iOS、微信小程序。實現了一套代碼,同時發布到Android、iOS、微信小程序。
參考官方:https://uniapp.dcloud.io/
APP微信授權
檢測服務商
檢測手機上是否安裝微信、QQ、新浪微博等。
uni.getProvider({ service: 'oauth', success: function (res) { console.log(res.provider); } });
授權登錄
獲取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微信授權登錄</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)); } }); } }); } } }); },
小程序微信授權
獲取用戶基本信息
為優化用戶體驗,使用 wx.getUserInfo 接口直接彈出授權框的開發方式將逐步不再支持。從2018年4月30日開始,小程序與小游戲的體驗版、開發版調用 wx.getUserInfo 接口,將無法彈出授權詢問框,默認調用失敗。正式版暫不受影響。開發者可使用以下方式獲取或展示用戶信息。
小程序使用 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">微信授權獲取用戶信息</button> <!-- #endif --> wxGetUserInfo:function(res){ if (!res.detail.iv) { uni.showToast({ title: "您取消了授權,登錄失敗", icon: "none" }); return false; } console.log('-------用戶授權,并獲取用戶基本信息和加密數據------') 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)等,后端調用接口如下:
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) } }) } }); }
微信登錄狀態監測
<!-- #ifdef MP-WEIXIN --> <button class="" @click="checkLogin">微信登錄檢測</button> <!-- #endif --> checkLogin: function() { wx.checkSession({ success() { console.log('ok'); // session_key 未過期,并且在本生命周期一直有效 }, fail() { // session_key 已經失效,需要重新執行登錄流程 //wx.login() // 重新登錄 console.log('expire'); } }) },
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。