权限的申请逻辑如下:
首先看应用的APL等级和权限的级别是否匹配?
如果匹配,再看授权方式,系统授权就可以直接使用该权限。用户授权就要等待用户授权之后才能使用该权限
如果不匹配,那么再看能否通过ACL跨级别申请?
如果通过,那么申请逻辑与APL等级权限匹配是一样的流程
如果不通过,那么就不能使用该权限
举例:日历的申请流程:
1.首先在moudle.json5文件中声明日历权限,同时日历权限是用户授权方式,需要添加授权原因,进行多种语言适配
2.检查权限是否已经授权,利用checkAccessToken方法来检查,如果可以,就可以使用该权限。如果不可以,那么就要请求用户申请权限
3.动态的请求用户申请权限,使用requestPernmissionfromUser方法来实现,并且等待用户执行结果。如果用户授权,那么可以使用该权限,不过不授权,那么就要引导用户在设置页面开启授权即可 。值得注意的一点是,首次用户授权会以弹窗的形式。再次调用就没有任何反应