• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 安全控件开发概述
2
3
4安全控件是OpenHarmony提供的一组系统实现的ArkUI组件。当用户点击了这类组件后,应用将被授予临时授权,应用开发者仅需要像使用Button等组件那样集成到应用自己的页面即可。
5
6
7当前提供了三种安全控件:
8
9
10- 位置控件:获取精准定位授权。
11
12- 粘贴控件:获取读取剪贴板授权。
13
14- 保存控件:获取媒体库写入授权。
15
16
17安全控件可以作为一种"特殊的按钮"融入应用页面,无需向用户弹窗授权,实现用户点击即许可的设计思路。精准的场景可以避免权限的滥用,保护用户隐私,同时也减少了弹窗对用户的干扰。
18
19
20应用集成安全控件后,注册OnClick回调监听用户点击。当用户点击后,安全控件底层将申请权限,并将结果返回给应用。如果成功,应用可以临时使用需要特权的接口。
21
22
23说明:不同类型的安全控件,对于权限的使用方式不同、授权的有效期也不同,详情请参考开发指导。
24
25
26安全控件因其自动授权的特性,为了保障用户的隐私不被恶意应用获取,针对安全控件作了很多的限制,例如尺寸不能过小、颜色不能透明等等,确保安全控件是可见的且用户能够识别的,所以三方开发者需要合理的配置控件的尺寸、颜色等属性,避免视觉混淆的情况,如果发生因控件的样式不合法导致授权失败的情况,请检查设备错误日志。
27
28
29## 技术框架
30
31安全控件特性有2个主要部件构成。
32
33- 安全控件实现:
34  集成在ArkUI中,提供ETS接口负责安全控件的生成、属性配置、布局、绘制、点击回调、销毁等功能。
35
36- 安全控件管理服务:
37  独立的服务进程,负责安全控件的注册、临时授权、取消授权、取消注册等管理,以及合法性检查。
38
39
40## 运作流程
41
42![security_component_manager.png](figures/security_component_manager.png)
43
441. 应用开发者在ETS文件中集成安全控件,通过JS引擎解析后,在ArkUI框架中生成具体的控件。
45
462. 安全控件注册控件信息到安全控件管理服务,安全控件管理服务检查控件信息的合法性。
47
483. 用户点击事件分发到安全控件。
49
504. 安全控件将点击事件上报到安全控件管理服务。
51
525. 安全控件管理服务根据控件种类对应不同权限,调用权限管理服务进行临时授权。
53
546. 授权成功后,安全控件回调OnClick通知应用层授权成功。
55
567. 应用调用相应的特权操作,如获取地理位置、读取剪贴板信息、媒体库中创建文件等。
57
588. 对应的服务会调用权限管理服务或安全控件管理服务,获取授权结果,返回鉴权结果。
59
60
61## 约束与限制
62
63应用开发者需尽量保证安全控件在应用界面上清晰可见,防止因覆盖、混淆等因素导致授权失败。
64