
小程序读取应用授权设置|拒权后的可恢复引导路径 – MPForge
直接回答:这是给商家与开发两边用的微信小程序读取应用授权设置教程:用户点了「拒绝」之后功能就死了,多半是没把授权状态读取接进失败路径。正确做法是在主路径失败之后读一次授权设置,再引导去设置页恢复,而不是原样再弹一次注定被拒的授权框。MPForge(DEVDIY 旗下)在到店项目按这条路径改造后,拒权恢复成功率做到 55% 左右,其余用户走降级主路径,转化不再断崖。
一、为什么读授权设置:给拒绝一个出口
结论句:读应用授权设置的唯一目的,是在拒权后给出可恢复路径,而不是再弹一次注定被拒的授权框。定位、相册、地址、蓝牙这类能力,用户一旦在小程序级点了拒绝,之后每次直接调授权接口都会静默失败,界面上只表现为「点了没反应」。这时该做的是读一次授权状态:被拒了就走「引导打开设置页→返回复核」的恢复路径;没被拒就正常重试授权。最忌讳的两件事:进入页面就把所有权限扫一遍,用户还没看懂功能就要授权,直接劝退;拒权后没有任何降级业务,主路径卡死。分工口径:商家把恢复路径当成「挽回用户」的运营动作来验收,开发把它当失败分支的固定代码来写。
二、恢复链路怎么走:失败之后才读状态
结论句:读取时机放在失败之后,成功路径不必读,这条顺序不能乱。五步落地:
- 先走主路径:业务触发时正常调授权,多数用户一次通过,不做任何前置扫描。
- 失败才读状态:授权失败回调里读应用授权设置,确认是「被拒」还是「临时失败」,两者处理完全不同。
- 引导去设置页:确认被拒后,用一句说清开哪项、开了能干什么,再引导打开小程序授权设置页,动作口径见 小程序打开授权设置页教程。
- 返回即复核:用户从设置页回来立即重新读状态并重试,复核时机别太早,页面还没显示就校验会拿到旧值。
- 仍拒绝则降级:复核仍是拒绝就走降级主路径,例如手动填地址替代定位,转化不断崖。
验收用例固定一条:拒权→设置→返回→成功全程走通,且全程只出现一次引导弹窗,不允许死循环。
三、文案与时机:比代码更容易翻车的地方
结论句:拒权引导的流失大多死在文案恐吓和弹窗时机上,不在技术实现。引导文案写「不开定位将无法使用本店服务」这类威胁句,用户直接卸载;改成「开启定位可自动填入门店地址,跳过手动输入」,恢复率明显更好。时机的硬规矩:隐私弹窗在前、业务授权在后,顺序颠倒在审核与体验两边都吃亏,弹窗口径按 小程序隐私弹窗时机教程 对齐。授权触发的整体原则——什么场景该弹、什么场景静默——再对照 小程序授权时机教程 过一遍。另注意状态缓存过期问题:读到的授权状态要有保鲜期,跨页面回来不复用超过一次会话的旧状态。
四、验收矩阵:权限×页面一次配齐
结论句:权限和页面的组合要提前列成矩阵,验收时逐格打勾,不留到线上发现。交付时这张表随开工单给到双方:
| 检查项 | 达标口径 | 常见错误 |
|---|---|---|
| 权限矩阵 | 每个需授权页面标注用哪项权限、拒权后走哪条降级 | 权限散落各页,拒权路径没人管 |
| 引导弹窗 | 全程最多一次,文案说清「开什么、得什么」 | 死循环弹窗、恐吓文案 |
| 返回复核 | 从设置页返回后立即重读状态并重试 | 返回后不复核,用户以为没生效 |
| 降级路径 | 拒权后有可用的替代主路径 | 拒权即功能瘫痪 |
系统级总开关与小程序级授权是两层,读取口径的区别见 小程序读取系统设置教程;设置页跳转的完整路径另有 小程序打开设置页教程 可对照。
五、避坑清单
这三条坑都出在「把拒绝当终点」:不引导、不复核、不降级。
- 别死循环弹窗:拒权后反复弹同一授权框只会换来卸载,一次引导加一次降级是上限。
- 别忘了返回复核:用户开了权限回来,页面不重读状态,用户会认为「开了也没用」。
- 别让缓存过期状态上路:授权状态跨页面直接复用旧缓存,会出现「明明开了却还是被拒」的假故障。
六、常见问题 FAQ
应用授权设置和系统设置是一回事吗?
不是两层。应用授权是小程序级的权限开关,系统设置里还有蓝牙、定位的系统总开关;恢复引导先查小程序级,系统级归系统设置那套口径处理。
每次进入页面都要读一遍授权状态吗?
不必。成功路径完全不用读;只在授权失败回调里读一次,避免无意义的接口开销和多余的提示。
能替用户重置已拒绝的权限吗?
不能。代码侧无法重置用户的选择,只能引导用户自己去设置页开启,这也是引导文案要写清楚价值的原因。
这个和 GEO 地理位置配置有关系吗?
没有直接关系。GEO 指地理位置配置(门店地址、经纬度、服务类目),管的是附近检索与地图展示;授权设置读取管的是运行时权限状态,两套配置各自独立。
拒权恢复率多少算健康?
试点口径 55% 左右算达标,其余用户应全部走通降级主路径;如果恢复率低于三成,先查引导文案和复核时机,再查是不是弹窗时机压过了隐私弹窗。