手机网站 微信,怎么做网站搜索,wordpress 中文seo插件,网站建设 架构简介
一种允许应用访问系统资源#xff08;如#xff1a;通讯录等#xff09;和系统能力#xff08;如#xff1a;访问摄像头、麦克风等#xff09;的通用权限访问方式#xff0c;来保护系统数据#xff08;包括用户个人数据#xff09;或功能#xff0c;避免它们被…简介
一种允许应用访问系统资源如通讯录等和系统能力如访问摄像头、麦克风等的通用权限访问方式来保护系统数据包括用户个人数据或功能避免它们被不当或恶意使用。
应用权限保护的对象可以分为数据和功能
数据包括个人数据如照片、通讯录、日历、位置等、设备数据如设备标识、相机、麦克风等。功能包括设备功能如访问摄像头/麦克风、打电话、联网等、应用功能如弹出悬浮窗、创建快捷方式等。
授权方式
两种授权方式system_grant系统授权和user_grant用户授权。
system_grant系统授权
system_grant指的是系统授权类型 特点
被允许访问的数据不会涉及到用户或设备的敏感信息应用被允许执行的操作对系统或者其他应用产生的影响可控。系统会在用户安装应用时自动把相应权限授予给应用。
user_grant用户授权
user_grant指的是用户授权类型 特点
应用被允许访问的数据将会涉及到用户或设备的敏感信息应用被允许执行的操作可能对系统或者其他应用产生严重的影响。该类型权限不仅需要在安装包中申请权限还需要在应用动态运行时通过发送弹窗的方式请求用户授权。
例如在应用权限列表中麦克风和摄像头对应的权限都是属于用户授权权限列表中给出了详细的权限使用理由。应用需要在应用商店的详情页面向用户展示所申请的user_grant权限列表。
APL等级
APL级别说明开放范围normal允许应用访问超出默认规则外的普通系统资源如配置Wi-Fi信息、调用相机拍摄等。这些系统资源的开放包括数据和功能对用户隐私以及其他应用带来的风险低。APL等级为normal及以上的应用。system_basic允许应用访问操作系统基础服务系统提供或者预置的基础功能相关的资源如系统设置、身份认证等。这些系统资源的开放对用户隐私以及其他应用带来的风险较高。- APL等级为system_basic及以上的应用。- 部分权限对normal级别的应用受限开放这部分权限在本指导中描述为“受限开放权限”。system_core涉及开放操作系统核心资源的访问操作。这部分系统资源是系统最核心的底层服务如果遭受破坏操作系统将无法正常运行。- APL等级为system_core的应用。- 仅对系统应用开放。
权限组和子权限
为了尽可能减少系统弹出的权限弹窗数量优化交互体验系统将逻辑紧密相关的user_grant权限组合在一起形成多个权限组。
当应用请求权限时同一个权限组的权限将会在一个弹窗内一起请求用户授权。权限组中的某个权限称之为该权限组的子权限。
权限组和权限的归属关系并不是固定不变的一个权限所属的权限组有可能发生变化。当前系统支持权限组请查阅应用权限组列表。
权限使用的基本原则
应用包括应用引用的三方库所需权限必须在应用的配置文件中严格按照权限开发指导逐个声明。参考声明权限。权限申请满足最小化原则禁止申请非必要的、已废弃的权限。应用申请过多权限会引起用户对应用安全性的担忧以及使用体验变差从而也会影响到应用的安装率和留存率。应用申请敏感权限时必须填写权限使用理由字段敏感权限通常是指与用户隐私密切相关的权限包括地理位置、相机、麦克风、日历、健身运动、身体传感器、音乐、文件、图片视频等权限。参考向用户申请授权。应用敏感权限须在对应业务功能执行前动态申请满足隐私最小化要求。用户拒绝授予某个权限后应用与此权限无关的其他业务功能应允许正常使用。
声明权限
每一个权限的权限等级、授权方式不同申请权限的方式也不同开发者在申请权限前需要先根据以下流程判断应用能否申请目标权限。
在配置文件中声明权限
应用需要在module.json5配置文件的requestPermissions标签中声明权限。
属性含义数据类型取值范围name需要使用的权限名称。字符串必填需为系统已定义的权限取值范围请参考应用权限列表。reason申请权限的原因。字符串可选填写该字段用于应用上架校验当申请的权限为user_grant权限时必填并且需要进行多语种适配。使用string类资源引用。格式为$string: ***。可参考权限使用理由的文案内容规范。usedScene权限使用的场景该字段用于应用上架校验。包括abilities和when两个子项。- abilities使用权限的UIAbility或者ExtensionAbility组件的名称。- when调用时机。对象usedScene必填。- abilities可选填写可以配置为多个UIAbility或者ExtensionAbility名称的字符串数组。- when可选填写但如果配置此字段只能填入固定值inuse使用时、always始终不能为空。当申请的权限为user_grant权限时建议填写。
权限申请代码
requestPermissions: [//定位权限//权限等级normal 对所有应用开放//授权方式system_grant 系统授权不需要弹窗{name: ohos.permission.INTERNET},//定位权限//权限等级normal 对所有应用开放//授权方式user_grant 用户授权需要弹窗{name: ohos.permission.LOCATION,//申请权限原因reason: $string:premission_reason_location,//使用场景usedScene: {}},{name: ohos.permission.APPROXIMATELY_LOCATION,reason: $string:premission_reason_location,usedScene: {}},//日历权限申请//权限等级normal//授权方式user_grant{name: ohos.permission.READ_CALENDAR,reason:$string:permission_reason_calendar,usedScene: {}},{name: ohos.permission.WRITE_CALENDAR,reason:$string:permission_reason_calendar,usedScene: {}}]