目录

安全控件概述

安全控件是系统提供的一组ArkUI基础组件,包括保存控件和粘贴控件。它们可以作为一种“特殊的按钮”融入应用页面,实现用户“点击即许可”的设计思路。

相较于动态申请权限的方式,安全控件可基于场景化授权,简化开发者和用户的操作,主要优点有:

  1. 用户可掌握授权时机,授权范围最小化。

  2. 授权场景可匹配用户真实意图。

  3. 减少弹窗打扰。

安全控件坚持仅采集实现业务功能所必需的个人数据,以服务于用户的需求,帮助开发透明、可选、可控的隐私合规应用。

安全控件列表

目前系统提供两类安全控件:

运作机制

整体方案由安全控件UI组件、安全控件管理服务、安全控件增强组成:

开发者调用接口时,运作流程如图所示。

  1. 应用开发者在ETS文件中集成安全控件,通过JS引擎解析后,在ArkUI框架中生成具体的控件。

  2. 安全控件注册控件信息到安全控件管理服务,安全控件管理服务检查控件信息的合法性。

  3. 用户点击事件分发到安全控件。

  4. 安全控件将点击事件上报到安全控件管理服务。

  5. 安全控件管理服务根据控件种类对应不同权限,调用权限管理服务进行临时授权。

  6. 授权成功后,安全控件回调OnClick通知应用层授权成功。

  7. 应用调用相应的特权操作,如读取剪贴板信息、媒体库中创建文件等。

    不同类型的安全控件,对于权限的使用方式不同、授权的有效期也不同,详情请查阅具体安全控件的开发指导。

  8. 对应的服务会调用权限管理服务或安全控件管理服务,获取授权结果,返回鉴权结果。

约束与限制

由于安全控件具有点击即授权的特性,为了保障用户的隐私不被恶意应用获取,系统针对安全控件做了很多的限制。应用开发者需保证安全控件在应用界面上清晰可见、用户能明确识别,防止因覆盖、混淆等因素导致授权失败。

当控件样式不合法导致授权失败的情况发生时,请开发者检查设备日志,过滤关键字"SecurityComponentCheckFail"可以获取具体原因。

该关键字相关的日志可能出现在不同级别的日志上,建议在过滤该关键字时不要筛选日志级别。

可能会导致授权失败的问题(包括但不限于):