使用粘貼控件
粘貼控件是一種特殊的系統安全控件,它允許應用在用戶的授權下無提示地讀取剪貼板數據。
在應用集成粘貼控件后,用戶點擊該控件,應用讀取剪貼板數據時不會彈窗提示。可以用于任何應用需要讀取剪貼板的場景,避免彈窗提示對用戶造成干擾。
例如,用戶在應用外(如短信)復制了驗證碼,要在應用內粘貼驗證碼。用戶原來在進入應用后,還需要長按輸入框、在彈出的選項中點擊粘貼,才能完成輸入。而使用粘貼控件,用戶只需進入應用后直接點擊粘貼按鈕,即可一步到位。
粘貼控件效果如圖所示。
約束與限制
- 剪貼板讀取的臨時授權將持續到新的數據被寫入剪貼板為止(例如用戶復制了新的數據)。
- 臨時授權會持續到滅屏、應用切后臺、應用退出情況發生。
- 應用在授權期間沒有調用次數限制。
- 為了保障用戶的隱私不被惡意應用獲取,應用需確保安全控件是可見的且用戶能夠識別的。開發者需要合理的配置控件的尺寸、顏色等屬性,避免視覺混淆的情況,如果發生因控件的樣式不合法導致授權失敗的情況,請檢查設備錯誤日志。
- 開發前請熟悉鴻蒙開發指導文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
開發步驟
以簡化用戶填寫驗證碼為例,參考以下步驟,實現效果:點擊控件獲取臨時授權,粘貼內容到文本框,效果圖請見上文。
- 導入剪貼板依賴。
import { pasteboard } from '@kit.BasicServicesKit';
- 添加輸入框和粘貼控件。
粘貼控件是由圖標、文本、背景組成的類似Button的按鈕,其中圖標、文本兩者至少有其一,背景可選。圖標和文本不支持自定義,僅支持在已有的選項中選擇。
應用申明安全控件的接口時,分為傳參和不傳參兩種,不傳參默認創建圖標+文字+背景的按鈕,傳參根據傳入的參數創建,不包含沒有配置的元素。
當前示例使用默認參數。具體請參見[PasteButton控件]。此外,所有安全控件都繼承[安全控件通用屬性]),可用于定制樣式。
import { pasteboard, BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
@State message: string = '';
build() {
Row() {
Column({ space: 10 }) {
TextInput({ placeholder: '請輸入驗證碼', text: this.message })
PasteButton().onClick((event: ClickEvent, result: PasteButtonOnClickResult) = > {
if (PasteButtonOnClickResult.SUCCESS === result) {
pasteboard.getSystemPasteboard().getData((err: BusinessError, pasteData: pasteboard.PasteData) = > {
if (err) {
console.error(`Failed to get paste data. Code is ${err.code}, message is ${err.message}`);
return;
}
// 剪貼板內容為 '123456'
this.message = pasteData.getPrimaryText();
});
}
})
}
.width('100%')
}
.height('100%')
}
}
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
鴻蒙
+關注
關注
57文章
2390瀏覽量
42968
發布評論請先 登錄
相關推薦
鴻蒙開發接口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程序訪問控制:安全控件概述
安全控件是系統提供的一組系統實現的ArkUI組件,應用集成這類組件就可以實現在用戶點擊后自動授權,而無需彈窗授權。它們可以作為一種“特殊的按鈕”融入應用頁面,實現用戶點擊即許可的設計思路。
鴻蒙開發Ability Kit程序訪問控制:使用位置控件
位置控件使用直觀且易懂的通用標識,讓用戶明確地知道這是一個獲取位置信息的按鈕。這滿足了授權場景需要匹配用戶真實意圖的需求。只有當用戶主觀愿意,并且明確了解使用場景后點擊位置控件,應用才會獲得臨時的授權,獲取位置信息并完成相應的服務功能。
評論