授權登錄
首先小程序在獲取用戶信息前應先檢查微信是否授權登錄,這裏需要先獲取用戶的當前設置——Taro.getSetting
// 使用方法一
import Taro from '@tarojs/taro'
Taro.getSetting({
success (res) {}
})
// 或者
Taro.getSetting().then(res => {})
// 使用方法二
import Taro, { getSetting } from '@tarojs/taro'
// 同上,去掉前面的Taro
調用此方法後判斷用戶是否授權:
import { hideTabBar } from '@tarojs/taro'
getSetting().then(res => {
let authSetting = res.authSetting
// 如果沒有授權則跳轉至授權頁面或者喚起授權彈框
if (!authSetting['scope.userInfo']) {
// 這裏要喚起自定義的授權彈框,因爲現在微信上只能通過按鈕來觸發授權,如果是在 tabBar 的頁面,需要先隱藏掉 tabBar
hideTabBar()
// 然後喚起彈框
this.setState({
authShow: true
})
}
})
那我們先自定義一個授權彈框在首頁:
getUserInfo = () => {
// ...
}
<AtModal isOpened>
<AtModalHeader>授權登錄</AtModalHeader>
<AtModalContent>
您還尚未授權,請授權後登錄
</AtModalContent>
<AtModalAction>
<Button onClick={this.handleCancel}>取消</Button>
<Button
open-type="getUserInfo"
onGetUserInfo={this.getUserInfo}
>確定</Button>
</AtModalAction>
</AtModal>
然後如果沒有授權就顯示這個彈框,然後點擊確定就可以授權了。授權後就可以進行下一步操作,比如用戶賬號綁定,手機號碼綁定等等。