0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙開(kāi)發(fā)Ability Kit程序訪問(wèn)控制:使用粘貼控件

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-07-03 09:15 ? 次閱讀

使用粘貼控件

粘貼控件是一種特殊的系統(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)擊粘貼按鈕,即可一步到位。

粘貼控件效果如圖所示。

zh-cn_image_0000001760763261

約束與限制

  • 剪貼板讀取的臨時(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)上文。

  1. 導(dǎo)入剪貼板依賴(lài)。
    import { pasteboard } from '@kit.BasicServicesKit';
    
  2. 添加輸入框和粘貼控件。
    粘貼控件是由圖標(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控件]。此外,所有安全控件都繼承[安全控件通用屬性]),可用于定制樣式。

搜狗高速瀏覽器截圖20240326151450.png

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%')
  }
}

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 鴻蒙
    +關(guān)注

    關(guān)注

    56

    文章

    2267

    瀏覽量

    42484
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙開(kāi)發(fā)接口Ability框架:【@ohos.application.Ability (Ability)】

    Ability模塊提供對(duì)Ability生命周期、上下文環(huán)境等調(diào)用管理的能力,包括Ability創(chuàng)建、銷(xiāo)毀、轉(zhuǎn)儲(chǔ)客戶(hù)端信息等。
    的頭像 發(fā)表于 04-30 17:42 ?2115次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b>接口<b class='flag-5'>Ability</b>框架:【@ohos.application.<b class='flag-5'>Ability</b> (<b class='flag-5'>Ability</b>)】

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

    Context模塊提供了ability或application的上下文的能力,包括允許訪問(wèn)特定于應(yīng)用程序的資源、請(qǐng)求和驗(yàn)證權(quán)限等。
    的頭像 發(fā)表于 05-13 16:04 ?555次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b>接口<b class='flag-5'>Ability</b>框架:【 (Context模塊)】

    鴻蒙Ability開(kāi)發(fā)-Stage模型下Ability的創(chuàng)建和使用

    ); hilog.info(ENTRY_ABILITY_DOMAIN, TAG, \'%{public}s\', \'Ability onBackground\'); } } 本文內(nèi)容是鴻蒙
    發(fā)表于 01-08 15:34

    跟阿斌一起學(xué)鴻蒙(2): Ability vs App?

    在進(jìn)一步實(shí)踐之前,需要先弄明白一個(gè)概念:Ability。不知道你有沒(méi)有注意到,使用鴻蒙開(kāi)發(fā)工具DevEco Studio創(chuàng)建項(xiàng)目時(shí),我們選擇創(chuàng)建的是一個(gè)個(gè)Ability。這是為什么呢?
    發(fā)表于 11-30 20:56

    鴻蒙應(yīng)用模型:【Ability Kit】簡(jiǎn)介

    Ability Kit程序框架服務(wù))提供了應(yīng)用程序開(kāi)發(fā)和運(yùn)行的應(yīng)用模型,是系統(tǒng)為開(kāi)發(fā)者提供的應(yīng)
    的頭像 發(fā)表于 05-29 14:41 ?435次閱讀
    <b class='flag-5'>鴻蒙</b>應(yīng)用模型:【<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>】簡(jiǎn)介

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

    基于Stage模型下的Ability開(kāi)發(fā),實(shí)現(xiàn)Ability內(nèi)頁(yè)面間的跳轉(zhuǎn)和數(shù)據(jù)傳遞。
    的頭像 發(fā)表于 06-03 20:43 ?185次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b>框架服務(wù))【<b class='flag-5'>Ability</b>內(nèi)頁(yè)面間的跳轉(zhuǎn)】

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

    本示例展示通過(guò)[IDL的方式]和?[@ohos.rpc]?等接口實(shí)現(xiàn)了Ability與ServiceExtensionAbility之間的通信。
    的頭像 發(fā)表于 06-05 09:28 ?344次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b>框架服務(wù))【<b class='flag-5'>Ability</b>與ServiceExtensionAbility通信】

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

    默認(rèn)情況下,應(yīng)用只能訪問(wèn)有限的系統(tǒng)資源。但某些情況下,應(yīng)用存在擴(kuò)展功能的訴求,需要訪問(wèn)額外的系統(tǒng)數(shù)據(jù)(包括用戶(hù)個(gè)人數(shù)據(jù))和功能,系統(tǒng)也必須以明確的方式對(duì)外提供接口來(lái)共享其數(shù)據(jù)或功能。
    的頭像 發(fā)表于 07-01 15:53 ?191次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b>框架服務(wù):<b class='flag-5'>訪問(wèn)</b><b class='flag-5'>控制</b>概述 <b class='flag-5'>程序</b><b class='flag-5'>訪問(wèn)</b><b class='flag-5'>控制</b>

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

    系統(tǒng)提供了一種允許應(yīng)用訪問(wèn)系統(tǒng)資源(如:通訊錄等)和系統(tǒng)能力(如:訪問(wèn)攝像頭、麥克風(fēng)等)的通用權(quán)限訪問(wèn)方式,來(lái)保護(hù)系統(tǒng)數(shù)據(jù)(包括用戶(hù)個(gè)人數(shù)據(jù))或功能,避免它們被不當(dāng)或惡意使用。
    的頭像 發(fā)表于 07-01 10:21 ?318次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b>框架服務(wù):應(yīng)用權(quán)限管控概述 <b class='flag-5'>程序</b><b class='flag-5'>訪問(wèn)</b><b class='flag-5'>控制</b>

    鴻蒙開(kāi)發(fā)Ability Kit程序訪問(wèn)控制:向用戶(hù)申請(qǐng)單次授權(quán)

    受限開(kāi)放的權(quán)限通常是不允許三方應(yīng)用申請(qǐng)的。當(dāng)應(yīng)用在申請(qǐng)權(quán)限來(lái)訪問(wèn)必要的資源時(shí),發(fā)現(xiàn)部分權(quán)限的等級(jí)比應(yīng)用APL等級(jí)高,開(kāi)發(fā)者可以選擇通過(guò)ACL方式來(lái)解決等級(jí)不匹配的問(wèn)題,從而使用受限權(quán)限。
    的頭像 發(fā)表于 07-02 17:48 ?324次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>訪問(wèn)</b><b class='flag-5'>控制</b>:向用戶(hù)申請(qǐng)單次授權(quán)

    鴻蒙開(kāi)發(fā)Ability Kit程序訪問(wèn)控制:申請(qǐng)使用受限權(quán)限

    受限開(kāi)放的權(quán)限通常是不允許三方應(yīng)用申請(qǐng)的。當(dāng)應(yīng)用在申請(qǐng)權(quán)限來(lái)訪問(wèn)必要的資源時(shí),發(fā)現(xiàn)部分權(quán)限的等級(jí)比應(yīng)用APL等級(jí)高,開(kāi)發(fā)者可以選擇通過(guò)ACL方式來(lái)解決等級(jí)不匹配的問(wèn)題,從而使用受限權(quán)限。
    的頭像 發(fā)表于 07-02 17:34 ?228次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>訪問(wèn)</b><b class='flag-5'>控制</b>:申請(qǐng)使用受限權(quán)限

    鴻蒙開(kāi)發(fā)Ability Kit程序訪問(wèn)控制:對(duì)所有應(yīng)用開(kāi)放

    在申請(qǐng)目標(biāo)權(quán)限前,建議開(kāi)發(fā)者先閱讀[申請(qǐng)應(yīng)用權(quán)限],對(duì)權(quán)限的工作流程有基本了解后,再結(jié)合以下權(quán)限字段的具體說(shuō)明,判斷應(yīng)用能否申請(qǐng)目標(biāo)權(quán)限,提高開(kāi)發(fā)效率。
    的頭像 發(fā)表于 07-02 14:32 ?280次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>訪問(wèn)</b><b class='flag-5'>控制</b>:對(duì)所有應(yīng)用開(kāi)放

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

    安全控件是系統(tǒng)提供的一組系統(tǒng)實(shí)現(xiàn)的ArkUI組件,應(yīng)用集成這類(lèi)組件就可以實(shí)現(xiàn)在用戶(hù)點(diǎn)擊后自動(dòng)授權(quán),而無(wú)需彈窗授權(quán)。它們可以作為一種“特殊的按鈕”融入應(yīng)用頁(yè)面,實(shí)現(xiàn)用戶(hù)點(diǎn)擊即許可的設(shè)計(jì)思路。
    的頭像 發(fā)表于 07-03 09:22 ?222次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>訪問(wèn)</b><b class='flag-5'>控制</b>:安全<b class='flag-5'>控件</b>概述

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

    保存控件是一種特殊的安全控件,它允許用戶(hù)通過(guò)點(diǎn)擊按鈕臨時(shí)獲取存儲(chǔ)權(quán)限,而無(wú)需通過(guò)權(quán)限彈框進(jìn)行授權(quán)確認(rèn)。
    的頭像 發(fā)表于 07-03 14:40 ?248次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>訪問(wèn)</b><b class='flag-5'>控制</b>:使用保存<b class='flag-5'>控件</b>

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

    位置控件使用直觀且易懂的通用標(biāo)識(shí),讓用戶(hù)明確地知道這是一個(gè)獲取位置信息的按鈕。這滿(mǎn)足了授權(quán)場(chǎng)景需要匹配用戶(hù)真實(shí)意圖的需求。只有當(dāng)用戶(hù)主觀愿意,并且明確了解使用場(chǎng)景后點(diǎn)擊位置控件,應(yīng)用才會(huì)獲得臨時(shí)的授權(quán),獲取位置信息并完成相應(yīng)的服務(wù)功能。
    的頭像 發(fā)表于 07-03 16:32 ?265次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>訪問(wèn)</b><b class='flag-5'>控制</b>:使用位置<b class='flag-5'>控件</b>