小程序授权是基础操作,有些问题是一定会遇上的。微信小程序在更新授权开发方式后,产生了一些让人易混淆的问题。
比如最近处理一个【保存到相册】授权的功能。使用 wx.authorize({...}) API只会发起一次授权申请,当用户没授权时,后边就不再弹出授权申请了。
解决方法就是使用 open-type 的方式。这种方式遇到两个问题:
1. 开发不方便,writePhotosAlbum 这个权限需要使用 bindopensetting,不象 getuserinfo 会直接弹出申请保存到相册的权限申请弹窗。
2. 在用户首次打开 open-type="openSetting" 时,以前没有授权过的权限不会展示在权限列表内。你只能加逻辑,先申请到相应的权限后,这种方式才管用。
基于上述问题,将保存到相册的权限申请提前到onload方法中,而不是在用到时再去申请,那样操作增加复杂度,因为加入了业务逻辑。
因为简书的代码引入不光看的时候垃圾,编辑时更垃圾,所以不上代码了。以上其实思路已经很明确了。先使用 wx.getSetting API获取用户授权列表,如果不存 writePhotosAlbum 这一项(undefined),则使用 wx.authorize 先申请权限 ,否则弹窗一个 open-type 的按钮,用户手动点。
就酱。
网友评论