微信小程式版部落格——授權登入的修改(wx.getUserInfo)
微信小程式版部落格——授權登入的修改(wx.getUserInfo)
最近一直忙著專案沒有時間打理我的小程式,有網友反饋wx.getUserInfo官方文件中做了一些調整,今天有空看了下文件,果然變了,所以抽時間優化了下程式碼
思路
之前的授權登入優化這裡看下原來的這篇文章,主要是在需要的時候才彈出使用者授權,同時通過wx.openSetting
來實現使用者拒絕後的二次授權,因為授權獲取使用者基本資訊一旦拒絕之後小程式就不會再出現授權視窗。
但現在wx.getUserInfo
該介面將不再出現授權彈窗,需要巢狀在button
中讓使用者主動點選授權。
這樣原本定義的方法就完全沒用了:
getUserInfo: function (loginType, cb) {
var that = this
if (this.globalData.userInfo) {
typeof cb == "function" && cb(this.globalData.userInfo, true);
}
......
那隻好換個思路啦,當點選需要授權的頁面時,我們首先驗證全域性變數globalData.userInfo
是否有值,如果沒有,那我們直接跳轉到授權頁面(authorization),引導使用者授權登入,登入成功後再跳轉回需要訪問的頁面。
具體實現
授權登入頁面設計
首先需要建個授權登入頁面,頁面其實很簡單,一段引導語和一個授權按鈕,但設計下來發現太單調了,於是找了個gif動圖,200多kb有點大[淚崩],為了好看就只能犧牲下了。
另外,如果使用者不想授權,那此頁面沒有可操作按鈕了,只能退出,這不太友好,所以又加了個返回首頁的按鈕,整體樣式效果如下:
image
同時如果使用者點選授權登入後依舊拒絕,在頂部給到一些小提示:
image
這個的話基本上的互動就有了,來看看具體程式碼:
//wxml:利用canIUse變數去相容低版本
<view wx:if="{{canIUse}}">
<view class='zan-font-14 zan-c-gray-dark' style='text-align:center;margin-top:50rpx'>
允許微信授權後,可體驗更多功能</view>
<view class="zan-btns">
<button open-type='getUserInfo' bindgetuserinfo="bindGetUserInfo" class="zan-btn zan-btn--primary">授權登入</button>
<button bindtap='navigateBack' class="zan-btn">返回首頁</button>
</view>
</view>
<view wx:else class='zan-font-16 zan-c-red' style='text-align:center;margin-top:50rpx'>
您的微信版本過低,請升級後再次體驗</view>
//js核心程式碼:其中利用backtype來確認授權登入後跳轉回那個頁面
bindGetUserInfo: function(e) {
let backtype = this.data.backType;
if (e.detail.userInfo) {
app.globalData.userInfo = e.detail.userInfo
if (backtype =='index') {
wx.switchTab({
url: '../index/index'
})
} else if (backtype == 'mine') {
wx.switchTab({
url: '../mine/mine'
})
} else {
wx.redirectTo({
url: '../detail/detail?blogId=' + backtype
})
}
} else {
this.showZanTopTips('很遺憾,您拒絕了微信授權,寶寶很傷心');
}
},
這裡注意下,如果跳轉的是微信選單頁,記得要用wx.switchTab
,詳細的可以再看看官方文件,幾個跳轉的方法去體會下。
這樣的話,在需要微信授權的頁面去驗證下,如果沒有登入就可以直接跳轉到該頁面啦。
//比如使用者中心的頁面
onLoad: function () {
let that = this;
if (!app.globalData.userInfo) {
wx.redirectTo({
url: '../authorization/authorization?backType=mine'
})
}
that.setData({
userInfo: app.globalData.userInfo
});
}
其他
由於時間有限,有些程式碼處理的不是很好,這個大家主要體會下思路和主要方法,時間充裕的情況下還是要注意下自己的編碼習慣。
另外就是有個小問題,在頁面跳轉時總有點小瑕疵,比如我第一次登入,在點選我的
選單Tab時,小程式會首先渲染使用者中心
這個頁面,然後發現沒有授權,直接一閃而過又跳到授權登入
頁面,這個不懂有什麼方式可以優化的,如果有改善建議還望指教。
總結
果然,小程式變化還是挺快的,看來有時間還是得多多迭代我的小部落格呀,也歡迎有興趣的小夥伴一起加入。
專案原始碼地址:https://github.com/CavinCao/ghost-wechat-blog
相關文章
- 微信小程式的授權登入微信小程式
- 小程式登入、微信網頁授權(Java版)網頁Java
- Java微信授權登入小程式介面Java
- uni-app 微信小程式授權登入APP微信小程式
- 微信小程式授權登入最佳實踐微信小程式
- #聊聊微信小程式使用者授權登入,無感知登入,強制授權~~~微信小程式
- 微信授權登入
- 基於Taro框架的微信小程式JWT授權登入方案框架微信小程式JWT
- 微信小程式授權登入獲取使用者資訊微信小程式
- 微信小程式——授權微信小程式
- java 微信授權登入配置Java
- 微信開發之小程式獲取手機號授權登入
- <span>小程式授權登入彈框</span>
- ThinkPHP5-微信小程式獲取使用者授權登入資訊PHP微信小程式
- WeHalo 簡約風 的微信小程式版部落格✨微信小程式
- 微信小程式授權過程微信小程式
- 微信小程式登入方式的修改解決方案微信小程式
- 微信小程式結合php後臺實現登入授權機制詳解微信小程式PHP
- ajax 實現微信網頁授權登入網頁
- 微信網頁授權登入(c# Webform)網頁C#WebORM
- 微信小程式授權登入以及使用者資訊相關介面調整導致授權框不彈出微信小程式
- 微信小程式登入微信小程式
- 微信小程式版部落格開發彙總(附原始碼)微信小程式原始碼
- 微信小程式版個人部落格及簡歷---面試加分微信小程式面試
- .NET Core企業微信網頁授權登入網頁
- C#微信網頁授權登入(NET MVC)C#網頁MVC
- 微信授權註冊或微信登陸 微信授權登陸 基於若依vue 實現Vue
- SpringBoot微信掃碼登入(小程式版)Spring Boot
- IDEA支付寶小程式開發流程——授權登入Idea
- Vue微信專案按需授權登入策略實踐Vue
- 第三方微信登入 | 靜默授權與網頁授權的實現網頁
- 微信小程式的登入體系微信小程式
- 微信小程式登入那些事微信小程式
- 微信小程式之登入態的探索微信小程式
- 微信小程式踩坑日記1——呼叫微信授權視窗微信小程式
- 關於QQ授權登入
- 微信小程式手機號登入微信小程式
- 原生微信網頁授權登入(藉助natapp穿牆)網頁APP