安全控件概述
安全控件是系統提供的一組系統實現的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文章
157瀏覽量
17652 -
鴻蒙
+關注
關注
60文章
2963瀏覽量
45883
發布評論請先 登錄
相關推薦
熱點推薦
鴻蒙開發接口Ability框架:【@ohos.application.Ability (Ability)】
Ability模塊提供對Ability生命周期、上下文環境等調用管理的能力,包括Ability創建、銷毀、轉儲客戶端信息等。
鴻蒙Ability開發-Stage模型下Ability的創建和使用
);
hilog.info(ENTRY_ABILITY_DOMAIN, TAG, \'%{public}s\', \'Ability onBackground\');
}
}
本文內容是鴻蒙
發表于 01-08 15:34
跟阿斌一起學鴻蒙(2): Ability vs App?
在進一步實踐之前,需要先弄明白一個概念:Ability。不知道你有沒有注意到,使用鴻蒙開發工具DevEco Studio創建項目時,我們選擇創建的是一個個Ability。這是為什么呢?
發表于 11-30 20:56
鴻蒙Ability Kit(程序框架服務)【Ability與ServiceExtensionAbility通信】
本示例展示通過[IDL的方式]和?[@ohos.rpc]?等接口實現了Ability與ServiceExtensionAbility之間的通信。
鴻蒙開發Ability Kit程序框架服務:訪問控制概述 程序訪問控制
默認情況下,應用只能訪問有限的系統資源。但某些情況下,應用存在擴展功能的訴求,需要訪問額外的系統數據(包括用戶個人數據)和功能,系統也必須以明確的方式對外提供接口來共享其數據或功能。
鴻蒙開發Ability Kit程序框架服務:應用權限管控概述 程序訪問控制
系統提供了一種允許應用訪問系統資源(如:通訊錄等)和系統能力(如:訪問攝像頭、麥克風等)的通用權限訪問方式,來保護系統數據(包括用戶個人數據)或功能,避免它們被不當或惡意使用。
鴻蒙開發Ability Kit程序訪問控制:向用戶申請單次授權
受限開放的權限通常是不允許三方應用申請的。當應用在申請權限來訪問必要的資源時,發現部分權限的等級比應用APL等級高,開發者可以選擇通過ACL方式來解決等級不匹配的問題,從而使用受限權限。
鴻蒙開發Ability Kit程序訪問控制:申請使用受限權限
受限開放的權限通常是不允許三方應用申請的。當應用在申請權限來訪問必要的資源時,發現部分權限的等級比應用APL等級高,開發者可以選擇通過ACL方式來解決等級不匹配的問題,從而使用受限權限。
鴻蒙開發Ability Kit程序訪問控制:對所有應用開放
在申請目標權限前,建議開發者先閱讀[申請應用權限],對權限的工作流程有基本了解后,再結合以下權限字段的具體說明,判斷應用能否申請目標權限,提高開發效率。
鴻蒙開發Ability Kit程序訪問控制:使用位置控件
位置控件使用直觀且易懂的通用標識,讓用戶明確地知道這是一個獲取位置信息的按鈕。這滿足了授權場景需要匹配用戶真實意圖的需求。只有當用戶主觀愿意,并且明確了解使用場景后點擊位置控件,應用才會獲得臨時的授權,獲取位置信息并完成相應的服務功能。
鴻蒙開發Ability Kit程序訪問控制:安全控件概述
評論