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