使用粘貼控件
粘貼控件是一種特殊的系統(tǒng)安全控件,它允許應(yīng)用在用戶的授權(quán)下無提示地讀取剪貼板數(shù)據(jù)。
在應(yīng)用集成粘貼控件后,用戶點擊該控件,應(yīng)用讀取剪貼板數(shù)據(jù)時不會彈窗提示。可以用于任何應(yīng)用需要讀取剪貼板的場景,避免彈窗提示對用戶造成干擾。
例如,用戶在應(yīng)用外(如短信)復(fù)制了驗證碼,要在應(yīng)用內(nèi)粘貼驗證碼。用戶原來在進(jìn)入應(yīng)用后,還需要長按輸入框、在彈出的選項中點擊粘貼,才能完成輸入。而使用粘貼控件,用戶只需進(jìn)入應(yīng)用后直接點擊粘貼按鈕,即可一步到位。
粘貼控件效果如圖所示。
約束與限制
- 剪貼板讀取的臨時授權(quán)將持續(xù)到新的數(shù)據(jù)被寫入剪貼板為止(例如用戶復(fù)制了新的數(shù)據(jù))。
- 臨時授權(quán)會持續(xù)到滅屏、應(yīng)用切后臺、應(yīng)用退出情況發(fā)生。
- 應(yīng)用在授權(quán)期間沒有調(diào)用次數(shù)限制。
- 為了保障用戶的隱私不被惡意應(yīng)用獲取,應(yīng)用需確保安全控件是可見的且用戶能夠識別的。開發(fā)者需要合理的配置控件的尺寸、顏色等屬性,避免視覺混淆的情況,如果發(fā)生因控件的樣式不合法導(dǎo)致授權(quán)失敗的情況,請檢查設(shè)備錯誤日志。
- 開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
開發(fā)步驟
以簡化用戶填寫驗證碼為例,參考以下步驟,實現(xiàn)效果:點擊控件獲取臨時授權(quán),粘貼內(nèi)容到文本框,效果圖請見上文。
- 導(dǎo)入剪貼板依賴。
import { pasteboard } from '@kit.BasicServicesKit';
- 添加輸入框和粘貼控件。
粘貼控件是由圖標(biāo)、文本、背景組成的類似Button的按鈕,其中圖標(biāo)、文本兩者至少有其一,背景可選。圖標(biāo)和文本不支持自定義,僅支持在已有的選項中選擇。
應(yīng)用申明安全控件的接口時,分為傳參和不傳參兩種,不傳參默認(rèn)創(chuàng)建圖標(biāo)+文字+背景的按鈕,傳參根據(jù)傳入的參數(shù)創(chuàng)建,不包含沒有配置的元素。
當(dāng)前示例使用默認(rèn)參數(shù)。具體請參見[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;
}
// 剪貼板內(nèi)容為 '123456'
this.message = pasteData.getPrimaryText();
});
}
})
}
.width('100%')
}
.height('100%')
}
}
審核編輯 黃宇
-
鴻蒙
+關(guān)注
關(guān)注
59文章
2507瀏覽量
43766
發(fā)布評論請先 登錄
鴻蒙開發(fā)接口Ability框架:【@ohos.application.Ability (Ability)】

鴻蒙開發(fā)接口Ability框架:【 (Context模塊)】

鴻蒙Ability開發(fā)-Stage模型下Ability的創(chuàng)建和使用
跟阿斌一起學(xué)鴻蒙(2): Ability vs App?
鴻蒙應(yīng)用模型:【Ability Kit】簡介

鴻蒙Ability Kit(程序框架服務(wù))【Ability內(nèi)頁面間的跳轉(zhuǎn)】

鴻蒙Ability Kit(程序框架服務(wù))【Ability與ServiceExtensionAbility通信】

鴻蒙開發(fā)Ability Kit程序框架服務(wù):訪問控制概述 程序訪問控制

鴻蒙開發(fā)Ability Kit程序框架服務(wù):應(yīng)用權(quán)限管控概述 程序訪問控制

鴻蒙開發(fā)Ability Kit程序訪問控制:向用戶申請單次授權(quán)

鴻蒙開發(fā)Ability Kit程序訪問控制:申請使用受限權(quán)限

鴻蒙開發(fā)Ability Kit程序訪問控制:對所有應(yīng)用開放

鴻蒙開發(fā)Ability Kit程序訪問控制:安全控件概述

鴻蒙開發(fā)Ability Kit程序訪問控制:使用保存控件

鴻蒙開發(fā)Ability Kit程序訪問控制:使用位置控件

評論