安全控件概述
安全控件是系統提供的一組系統實現的ArkUI組件,應用集成這類組件就可以實現在用戶點擊后自動授權,而無需彈窗授權。它們可以作為一種“特殊的按鈕”融入應用頁面,實現用戶點擊即許可的設計思路。
相較于動態申請權限的方式,安全控件可基于場景化授權,簡化開發者和用戶的操作,主要優點有:
- 用戶可掌握授權時機,授權范圍最小化。
- 授權場景可匹配用戶真實意圖。
- 減少彈窗打擾。
- 開發者不必向應用市場申請權限,簡化操作。
- 開發前請熟悉鴻蒙開發指導文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
安全控件堅持僅采集實現業務功能所必須的個人數據,以服務于用戶的需求,幫助開發透明、可選、可控的隱私合規應用。
安全控件列表
目前系統提供三類安全控件:
- [粘貼控件(PasteButton)]
該控件對應剪貼板讀取特權。應用集成粘貼控件后,用戶點擊該控件,應用讀取剪貼板數據時不會彈窗提示。
建議使用場景:粘貼控件可以用于任何應用需要讀取剪貼板的場景,避免彈窗提示對用戶造成干擾。 - [保存控件(SaveButton)]
該控件對應媒體庫寫入特權。應用集成保存控件后,用戶點擊該控件,應用會獲取10秒內單次訪問媒體庫特權接口的授權。
建議使用場景:保存控件可以用于任何應用需要保存文件到媒體庫的場景(保存圖片、保存視頻等)。與Picker需要拉起系統應用再由用戶選擇具體路徑保存的方式不同,保存控件將直接保存到指定媒體庫路徑,操作更快捷。 - [位置控件(LocationButton)]
該控件對應精準定位特權。應用集成位置控件后,用戶點擊該控件,無論應用是否申請過或者被授予精準定位權限,都會在本次前臺期間獲得精準定位的授權,可以調用位置服務獲取精準定位。
建議使用場景:應用不是強位置關聯應用(如導航、運動健康等),僅在部分前臺場景需要使用位置信息(如定位城市、打卡、分享位置等)。如果需要長時間使用或是在后臺使用位置信息,建議申請位置權限。
運作機制
整體方案由安全控件UI組件、安全控件管理服務、安全控件增強組成:
- UI組件:實現了固定文字圖標的樣式,便于用戶識別,同時提供了相對豐富的定制化能力,便于開發者定制。
- 控件管理服務:提供控件注冊管理能力、控件臨時授權機制、管理授權生效周期,確保應用后臺、鎖屏下無法注冊使用安全控件。
- 安全增強:實現了地址隨機化、挑戰值檢查、回調UI框架復核控件信息、調用者地址檢查、組件防覆蓋、真實點擊事件校驗等機制,防止應用開發者通過混淆、隱藏、篡改、仿冒等方式濫用授權機制,泄露用戶隱私。
開發者調用接口時,運作流程如圖所示。
- 應用開發者在ETS文件中集成安全控件,通過JS引擎解析后,在ArkUI框架中生成具體的控件。
- 安全控件注冊控件信息到安全控件管理服務,安全控件管理服務檢查控件信息的合法性。
- 用戶點擊事件分發到安全控件。
- 安全控件將點擊事件上報到安全控件管理服務。
- 安全控件管理服務根據控件種類對應不同權限,調用權限管理服務進行臨時授權。
- 授權成功后,安全控件回調OnClick通知應用層授權成功。
- 應用調用相應的特權操作,如獲取地理位置、讀取剪貼板信息、媒體庫中創建文件等。 不同類型的安全控件,對于權限的使用方式不同、授權的有效期也不同,詳情請參考開發指導。
- 對應的服務會調用權限管理服務或安全控件管理服務,獲取授權結果,返回鑒權結果。
約束與限制
安全控件因其自動授權的特性,為了保障用戶的隱私不被惡意應用獲取,針對安全控件作了很多的限制。應用開發者需保證安全控件在應用界面上清晰可見、用戶能明確識別,防止因覆蓋、混淆等因素導致授權失敗。
當因控件樣式不合法導致授權失敗的情況發生時,請開發者檢查設備錯誤日志,過濾關鍵字"SecurityComponentCheckFail"可以獲取具體原因。
說明: 請開發者關注過濾條件下,所有級別的日志。
HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
可能會導致授權失敗的問題(包括但不限于):
- 字體、圖標尺寸過小。
- 安全控件整體尺寸過大。
- 字體、圖標、背景按鈕的顏色透明度過高。
- 字體或圖標與背景按鈕顏色過于相似。
- 安全控件超出屏幕、超出窗口等,導致顯示不全。
- 安全控件被其他組件或窗口遮擋。
- 安全控件的父組件有類似變形模糊等可能導致安全控件顯示不完整的屬性。
審核編輯 黃宇
-
控件
+關注
關注
0文章
155瀏覽量
16918 -
鴻蒙
+關注
關注
57文章
2307瀏覽量
42738
發布評論請先 登錄
相關推薦
評論