本文轉自:http://www.wxapp-union.com/forum.php?mod=viewthread&tid=4066
這個API解決了過去一個長久以來無法解決的問題,如何讓用戶重復授權;
打開小程序的設置界面:就是主動調取授權
目前資料極少,但是已經可以讓大家先看看了;
官方文檔地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/setting.html#opensettingobject
基礎庫版本 1.1.0 開始支持,低版本需做兼容處理微信客戶端 6.5.6 版本開始支持調起客戶端小程序設置界面,返回用戶設置的操作結果
目前的授權影響范圍:
scope 說明:
scope | 對應接口 |
scope.userInfo | wx.getUserInfo |
scope.userLocation | wx.getLocation, wx.chooseLocation |
scope.address | wx.chooseAddress |
scope.record | wx.startRecord |
相關文章: wx.openSetting,wx.setClipboardData,wx.getClipboardData 微信小程序最新更新--api測試一覽 微信小程序之新版本測試
相關討論: wx.openSetting()怎么判斷success里面 用戶有沒有授權了我寫的
[AppleScript]
純文本查看
復制代碼
1
2
3
4
5
6
7
8
9
|
wx.openSetting
(
{
success
:
(
res
)
=
>
{
console.
log
(
"授權結果.."
)
console.
log
(
res
)
if
(
!res.authSetting.scope.userInfo || !res.authSetting.scope.userLocation
)
{
applyNotice
(
)
}
}
}
)
|
不正常啊,res的authSetting兩個對象,兩個對象的鍵名是scope.userInfo和scope.userLocation都是帶了 . 的,怎么判斷用戶都授權了呢?我的小程序需要用戶授權才能使用服務呢。做的事基於LBS的共享服務,沒有定位和用戶登錄,就無法獲取服務器上的區域划分的數據。用戶就看不了自己周圍的地圖和自己的用戶信息
[AppleScript] 純文本查看 復制代碼
123456789wx.openSetting
(
{
success
:
(
res
)
=
>
{
console.
log
(
"授權結果.."
)
console.
log
(
res
)
if
(
!res.authSetting[
"scope.userInfo"
] || !res.authSetting[
"scope.userLocation"
]
)
{
applyNotice
(
)
}
}
}
)
試試上述改動。
打印出來的console的可以判斷了,對象還可以像數組一樣鍵值調用,謝謝啦!
相關討論: 用戶取消后如何再次調出允許授權的modal? 如果用戶錯點了拒絕,就沒辦法再繼續進入使用小程序了。能重新再調出許可的小窗讓用戶重新再選擇嗎? 答:林超
使用 wx.openSetting接口![]()
相關討論:
關於用戶授權界面的喚醒
用戶如果不小心拒絕了授權,之前是過十分鍾之后還可以被喚醒,最近發現
喚
不醒了,一直是:"getUserInfo:fail auth deny",該如何應對? 答:
Tïedào
//如下,在getUserInfo失敗后調用wx.openSetting即可