使用粘貼控件
粘貼控件是一種特殊的系統(tǒng)安全控件,它允許應用在用戶的授權(quán)下無提示地讀取剪貼板數(shù)據(jù)。
在應用集成粘貼控件后,用戶點擊該控件,應用讀取剪貼板數(shù)據(jù)時不會彈窗提示??梢杂糜谌魏螒眯枰x取剪貼板的場景,避免彈窗提示對用戶造成干擾。
例如,用戶在應用外(如短信)復制了驗證碼,要在應用內(nèi)粘貼驗證碼。用戶原來在進入應用后,還需要長按輸入框、在彈出的選項中點擊粘貼,才能完成輸入。而使用粘貼控件,用戶只需進入應用后直接點擊粘貼按鈕,即可一步到位。
粘貼控件效果如圖所示。
約束與限制
- 剪貼板讀取的臨時授權(quán)將持續(xù)到新的數(shù)據(jù)被寫入剪貼板為止(例如用戶復制了新的數(shù)據(jù))。
- 臨時授權(quán)會持續(xù)到滅屏、應用切后臺、應用退出情況發(fā)生。
- 應用在授權(quán)期間沒有調(diào)用次數(shù)限制。
- 為了保障用戶的隱私不被惡意應用獲取,應用需確保安全控件是可見的且用戶能夠識別的。開發(fā)者需要合理的配置控件的尺寸、顏色等屬性,避免視覺混淆的情況,如果發(fā)生因控件的樣式不合法導致授權(quán)失敗的情況,請檢查設備錯誤日志。
- 開發(fā)前請熟悉鴻蒙開發(fā)指導文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
開發(fā)步驟
以簡化用戶填寫驗證碼為例,參考以下步驟,實現(xiàn)效果:點擊控件獲取臨時授權(quán),粘貼內(nèi)容到文本框,效果圖請見上文。
- 導入剪貼板依賴。
import { pasteboard } from '@kit.BasicServicesKit';
- 添加輸入框和粘貼控件。
粘貼控件是由圖標、文本、背景組成的類似Button的按鈕,其中圖標、文本兩者至少有其一,背景可選。圖標和文本不支持自定義,僅支持在已有的選項中選擇。
應用申明安全控件的接口時,分為傳參和不傳參兩種,不傳參默認創(chuàng)建圖標+文字+背景的按鈕,傳參根據(jù)傳入的參數(shù)創(chuàng)建,不包含沒有配置的元素。
當前示例使用默認參數(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)注
57文章
2393瀏覽量
43079
發(fā)布評論請先 登錄
相關(guān)推薦
鴻蒙開發(fā)接口Ability框架:【@ohos.application.Ability (Ability)】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>接口<b class='flag-5'>Ability</b>框架:【@ohos.application.<b class='flag-5'>Ability</b> (<b class='flag-5'>Ability</b>)】](https://file1.elecfans.com/web2/M00/C5/D1/wKgZomYChGOAUaiiAADe1d8SeRY102.jpg)
鴻蒙開發(fā)接口Ability框架:【 (Context模塊)】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>接口<b class='flag-5'>Ability</b>框架:【 (Context模塊)】](https://file1.elecfans.com/web2/M00/E5/06/wKgZomZByY2AA0TvAABzyyVt1n8710.png)
鴻蒙Ability開發(fā)-Stage模型下Ability的創(chuàng)建和使用
跟阿斌一起學鴻蒙(2): Ability vs App?
鴻蒙Ability Kit(程序框架服務)【Ability內(nèi)頁面間的跳轉(zhuǎn)】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b>框架服務)【<b class='flag-5'>Ability</b>內(nèi)頁面間的跳轉(zhuǎn)】](https://file1.elecfans.com/web2/M00/E3/5B/wKgaomY7dICAanabAG9fQxOwEh0579.jpg)
鴻蒙Ability Kit(程序框架服務)【Ability與ServiceExtensionAbility通信】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b>框架服務)【<b class='flag-5'>Ability</b>與ServiceExtensionAbility通信】](https://file1.elecfans.com/web2/M00/EC/91/wKgaomZfBTaAUYFaAAIK5_JVZ4U512.jpg)
鴻蒙開發(fā)Ability Kit程序框架服務:訪問控制概述 程序訪問控制
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b>框架服務:<b class='flag-5'>訪問</b><b class='flag-5'>控制</b>概述 <b class='flag-5'>程序</b><b class='flag-5'>訪問</b><b class='flag-5'>控制</b>](https://file1.elecfans.com/web2/M00/EB/AA/wKgZomZfBbWAPqxgAAMXOrGQOgM110.png)
鴻蒙開發(fā)Ability Kit程序框架服務:應用權(quán)限管控概述 程序訪問控制
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b>框架服務:應用權(quán)限管控概述 <b class='flag-5'>程序</b><b class='flag-5'>訪問</b><b class='flag-5'>控制</b>](https://file1.elecfans.com/web2/M00/C5/D5/wKgZomYCnRSAcOMcAACEEnttXHc600.png)
鴻蒙開發(fā)Ability Kit程序訪問控制:向用戶申請單次授權(quán)
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>訪問</b><b class='flag-5'>控制</b>:向用戶申請單次授權(quán)](https://file1.elecfans.com/web2/M00/EB/AA/wKgZomZfBbWAPqxgAAMXOrGQOgM110.png)
鴻蒙開發(fā)Ability Kit程序訪問控制:申請使用受限權(quán)限
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>訪問</b><b class='flag-5'>控制</b>:申請使用受限權(quán)限](https://file1.elecfans.com/web2/M00/C6/E9/wKgaomYEK1aAOyTeAADysXFhWs8242.png)
鴻蒙開發(fā)Ability Kit程序訪問控制:對所有應用開放
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>訪問</b><b class='flag-5'>控制</b>:對所有應用開放](https://file1.elecfans.com/web2/M00/C5/D5/wKgZomYCnRSAcOMcAACEEnttXHc600.png)
鴻蒙開發(fā)Ability Kit程序訪問控制:安全控件概述
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>訪問</b><b class='flag-5'>控制</b>:安全<b class='flag-5'>控件</b>概述](https://file1.elecfans.com/web2/M00/F7/37/wKgZomaD_lyAZ8NuAAC0M8L3lAs157.jpg)
鴻蒙開發(fā)Ability Kit程序訪問控制:使用保存控件
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>訪問</b><b class='flag-5'>控制</b>:使用保存<b class='flag-5'>控件</b>](https://file1.elecfans.com/web2/M00/F8/80/wKgaomaE_AyANkGmAAC4_LfnW4k439.png)
鴻蒙開發(fā)Ability Kit程序訪問控制:使用位置控件
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>訪問</b><b class='flag-5'>控制</b>:使用位置<b class='flag-5'>控件</b>](https://file1.elecfans.com/web2/M00/F7/95/wKgZomaE_TKADpFcAAF42TNUQfA074.jpg)
評論