HarmonyOS 安全控件的使用 —— (1) 安全控件概述

180 阅读3分钟

一、安全控件概念

安全控件是系统提供的一组系统实现的ArkUI组件,应用集成这类组件就可以实现在用户点击后自动授权,而无需弹窗授权。它们可以作为一种“特殊的按钮”融入应用页面,实现用户点击即许可的设计思路。

为保证用户授予的权限不被恶意使用,鸿蒙系统特别设计了安全控件这类不用向用户申请权限而是由鸿蒙系统来完成中间操作的控件,安全控件有以下优点:

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

2.开发者不需要向应用市场申请权限,简化操作。

3.减少弹窗打扰,使用户体验更流畅。

二、安全控件列表

目前鸿蒙系统提供以下三类安全控件:

  • 粘贴控件(PasteButton)

该控件对应剪贴板读取特权。应用集成粘贴控件后,用户点击该控件,应用读取剪贴板数据时不会弹窗提示。

建议使用场景:粘贴控件可以用于任何应用需要读取剪贴板的场景,避免弹窗提示对用户造成干扰。

  • 保存控件(SaveButton)

该控件对应媒体库写入特权。应用集成保存控件后,用户点击该控件,应用会获取10秒内访问媒体库特权接口的授权。

建议使用场景:保存控件可以用于任何应用需要保存文件到媒体库的场景(保存图片、保存视频等)。与Picker需要拉起系统应用再由用户选择具体路径保存的方式不同,保存控件将直接保存到指定媒体库路径,操作更快捷。

  • 位置控件(LocationButton)

该控件对应精准定位特权。应用集成位置控件后,用户点击该控件,无论应用是否申请过或者被授予精准定位权限,都会在本次前台期间获得精准定位的授权,可以调用位置服务获取精准定位。

建议使用场景:应用不是强位置关联应用(如导航、运动健康等),仅在部分前台场景需要使用位置信息(如定位城市、打卡、分享位置等)。如果需要长时间使用或是在后台使用位置信息,建议申请位置权限。

三、运作机制

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

  • UI组件:固定文字样式,在显示时有特定规范限制,避免出现误导的情况。
  • 控件管理服务:提供控件注册管理能力,安全控件的主要服务主要由该模块完成,控制权限的回收。
  • 安全增强:安全控件实现相关安全防护能力,例如地址随机化、挑战值检查、回调UI框架复核控件信息、调用者地址检查、组件防覆盖、真实点击事件校验等机制,防止应用开发者通过混淆、隐藏、篡改、仿冒等方式滥用授权机制,泄露用户隐私。

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

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