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