前言
小程序的開發(fā)過程中一般會涉及到的權(quán)限獲取為:獲取地理位置信息堂湖、獲取微信授權(quán)蜈敢、獲取手機號潮秘。
而獲取權(quán)限的流程一般會放在用戶首次使用小程序的時候。
因為小程序默認情況下养交,所有頁面右上角的功能按鈕
是可以喚起轉(zhuǎn)發(fā)
操作的精算,所以在小程序上線前要格外注意處理用戶的轉(zhuǎn)發(fā)操作。避免踩坑
小程序設(shè)計
一般情況下碎连,公司肯定希望自己的app灰羽、小程序持有的用戶量增加。所以一般會在用戶首次進入小程序時要求用戶授權(quán)登錄鱼辙,甚至有的小程序要求用戶必須完成登錄流程才能使用(在首頁彈窗請求用戶授權(quán)谦趣,邏輯也封裝在/index路徑下)。
這種邏輯下的轉(zhuǎn)發(fā)操作要格外注意座每,因為轉(zhuǎn)發(fā)可以跳過小程序首頁的登錄邏輯,造成轉(zhuǎn)發(fā)頁面的接口請求不成功等問題摘悴。
再踩過坑之后峭梳,總結(jié)出比較完善的登錄及轉(zhuǎn)發(fā)流程如下:
1 封裝登錄頁面
因為目前微信授權(quán)和手機號授權(quán)的系統(tǒng)提醒都需要通過button組件觸發(fā),所以登錄流程最好寫成獨立頁面蹂喻,這樣方便處理邏輯葱椭。
2 觸發(fā)登錄頁面
2.1 如果小程序要求用戶一定要完成授權(quán)登錄才能使用,那么讓服務(wù)端在接口中添加錯誤判斷機制口四,如果用戶沒有登錄孵运,接收到錯誤代碼后,前段跳轉(zhuǎn)至登錄頁面蔓彩。(某些功能類或者游戲類的小程序)
2.2 如果小程序不需要用戶登錄即可正常瀏覽治笨,只是在處理某些與賬號相關(guān)功能時才要求登錄,那么前端自己添加判斷邏輯赤嚼,跳轉(zhuǎn)至登陸頁旷赖。(電商類)
這里跳轉(zhuǎn)登陸頁需要使用:
wx.navigateTo({
url: "/pages/.../...",
})
3 登錄成功后返回上一級
3.1 觸發(fā)登錄的頁面無傳參,在登錄成功后直接返回更卒,并重新加載上一級頁面數(shù)據(jù)等孵。
wx.navigateBack({
detail: 1
})
let pages = getCurrentPages();
let prevPage = pages[pages.length - 2]
prevPage.reload()
3.2 觸發(fā)登錄的頁面有傳參,在登錄成功后重新調(diào)用上一級頁面的onLoad(options)
方法蹂空,并通過prevPage.options
回傳參數(shù)俯萌。
wx.navigateBack({
detail: 1
})
let pages = getCurrentPages();
let prevPage = pages[pages.length - 2]
prevPage.onLoad(prevPage.options)
總結(jié)
小程序的開發(fā)并不復(fù)雜果录,只是很多坑。例如在登錄流程中經(jīng)常出現(xiàn)小程序登錄態(tài)
過期的情況咐熙,注意要在app.js中處理弱恒。