有什么方法可以解決呢,或者怎樣可以重新獲取用戶授權(quán)?
現(xiàn)在在做一個(gè)小程序有地圖的功能,通過點(diǎn)擊按鈕打開地圖。調(diào)用wx.getlocation()這個(gè)接口是需要用戶的授權(quán)。如果他授權(quán)了,返回一個(gè)success當(dāng)然最好啦,就什么問題都沒有了。如果他點(diǎn)了取消,返回一個(gè)fail,我就使用預(yù)設(shè)的經(jīng)緯度打開一個(gè)定位。但是如果用戶點(diǎn)擊返回以后,再次點(diǎn)擊按鈕進(jìn)入地圖就會(huì)沒有反應(yīng)(如果一開始有授權(quán)的話就可以再次重新打開地圖)。
有什么方法可以解決呢,或者怎樣可以重新獲取用戶授權(quán)。畢竟叫他們刪了重來的話,這樣的體驗(yàn)好像不大好。。。
方法:A:單擊隱藏圖章wx.openSetting(OBJECT) 重新調(diào)用小程序授權(quán),文檔現(xiàn)在已經(jīng)有了【以下是文檔內(nèi)容】
wx.openSetting(OBJECT)
調(diào)起客戶端小程序設(shè)置界面,返回用戶設(shè)置的操作結(jié)果
Object 參數(shù)說明:
參數(shù) 類型 必填 說明
success Function 否 接口調(diào)用成功的回調(diào)函數(shù),返回內(nèi)容詳見返回參數(shù)說明。
fail Function 否 接口調(diào)用失敗的回調(diào)函數(shù)
complete Function 否 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行)
success返回參數(shù)說明:
參數(shù) 類型 說明
authSetting Object 用戶授權(quán)結(jié)果,其中 key 為 scope 值,value 為 Bool 值,表示用戶是否允許授權(quán),詳見 scope 列表
示例代碼:
wx.openSetting({
success: (res) => {
/*
* res.authSetting = {
* "scope.userInfo": true,
* "scope.userLocation": true
* }
*/
}
})
wx.getSetting(OBJECT)
獲取用戶的當(dāng)前設(shè)置
Object 參數(shù)說明:
參數(shù) 類型 必填 說明
success Function 否 接口調(diào)用成功的回調(diào)函數(shù),返回內(nèi)容詳見返回參數(shù)說明。
fail Function 否 接口調(diào)用失敗的回調(diào)函數(shù)
complete Function 否 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行)
success返回參數(shù)說明:
參數(shù) 類型 說明
authSetting Object 用戶授權(quán)結(jié)果,其中 key 為 scope 值,value 為 Bool 值,表示用戶是否允許授權(quán),詳見 scope 列表
示例代碼:
wx.getSetting({
success: (res) => {
/*
* res.authSetting = {
* "scope.userInfo": true,
* "scope.userLocation": true
* }
*/
}
})
Map:function(){
wx.getLocation({
type: 'gcj02',
success: function(res){
// success
wx.openLocation({
latitude: res.latitude,
longitude: res.longitude,
scale: 28,
})},
fail: function(res){
// fail
wx.openLocation({
address:"獲取授權(quán)失敗 打開默認(rèn)定位",
//默認(rèn)定位我就隱藏啦
latitude: XX.XX,
longitude: XX.XX,
scale: 28,
},
wx.openSetting({
//重新請求獲取定位
success: (res) => {}})
)},
})
}