色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-07-03 14:40 ? 次閱讀

使用保存控件

保存控件是一種特殊的安全控件,它允許用戶通過點擊按鈕臨時獲取存儲權限,而無需通過權限彈框進行授權確認。

集成保存控件后,當用戶點擊該控件時,應用會獲得10秒內單次訪問媒體庫特權接口的授權。這適用于任何需要將文件保存到媒體庫的應用場景,例如保存圖片或視頻等。

與需要觸發系統應用并由用戶選擇具體保存路徑的Picker不同,保存控件可以直接保存到指定的媒體庫路徑,使得操作更為便捷。

保存控件效果如圖所示。

1.png

約束與限制

  • 應用在onClick()觸發回調到調用媒體庫特權接口的時間間隔不能大于10秒。
  • 用戶點擊一次控件,僅獲取一次授權調用。
  • 為了保障用戶的隱私不被惡意應用獲取,應用需確保安全控件是可見的且用戶能夠識別的。開發者需要合理的配置控件的尺寸、顏色等屬性,避免視覺混淆的情況,如果發生因控件的樣式不合法導致授權失敗的情況,請檢查設備錯誤日志。
  • 開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

開發步驟

以保存對話中圖片為例,應用僅需要在前臺期間,短暫使用保存圖片的特性,不需要長時間使用。此時,可以直接使用安全控件中的保存控件,免去權限申請和權限請求等環節,獲得臨時授權,保存對應圖片。

  1. 導入文件和媒體庫依賴。

    import { photoAccessHelper } from '@kit.MediaLibraryKit';
    import { fileIo } from '@kit.CoreFileKit';
    
  2. 設置圖片資源,并添加保存控件。
    保存控件是一種類似于按鈕的安全控件,由圖標、文本和背景組成。其中,圖標和文本至少需要有一個,背景是可選的。圖標和文本不能自定義,只能從已有的選項中選擇。在聲明安全控件的接口時,有傳參和不傳參兩種方式。不傳參將默認創建一個包含圖標、文字和背景的按鈕,傳參則根據參數創建,不包含未配置的元素。
    當前示例使用默認參數。具體請參見[SaveButton控件]。此外,所有安全控件都繼承[安全控件通用屬性],可用于定制樣式。
    搜狗高速瀏覽器截圖20240326151450.png

    `HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`
    import { photoAccessHelper } from '@kit.MediaLibraryKit';
    import { fileIo } from '@kit.CoreFileKit';
    import { common } from '@kit.AbilityKit';
    import { promptAction } from '@kit.ArkUI';
    import { BusinessError } from '@kit.BasicServicesKit';
    
    async function savePhotoToGallery(context: common.UIAbilityContext) {
      let helper = photoAccessHelper.getPhotoAccessHelper(context);
      try {
        // onClick觸發后5秒內通過createAsset接口創建圖片文件,5秒后createAsset權限收回。
        let uri = await helper.createAsset(photoAccessHelper.PhotoType.IMAGE, 'jpg');
        // 使用uri打開文件,可以持續寫入內容,寫入過程不受時間限制
        let file = await fileIo.open(uri, fileIo.OpenMode.READ_WRITE | fileIo.OpenMode.CREATE);
        context.resourceManager.getMediaContent($r('app.media.icon').id, 0)
          .then(async value = > {
            let media = value.buffer;
            // 寫到媒體庫文件中
            await fileIo.write(file.fd, media);
            await fileIo.close(file.fd);
            promptAction.showToast({ message: '已保存至相冊!' });
          });
      }
      catch (error) {
        const err: BusinessError = error as BusinessError;
        console.error(`Failed to save photo. Code is ${err.code}, message is ${err.message}`);
      }
    }
    
    @Entry
    @Component
    struct Index {
      build() {
        Row() {
          Column({ space: 10 }) {
            Image($r('app.media.icon'))
              .height(400)
              .width('100%')
    
            SaveButton().onClick(async (event: ClickEvent, result: SaveButtonOnClickResult) = > {
              if (result === SaveButtonOnClickResult.SUCCESS) {
                const context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;
                // 免去權限申請和權限請求等環節,獲得臨時授權,保存對應圖片
                savePhotoToGallery(context);
              } else {
                promptAction.showToast({ message: '設置權限失敗!' })
              }
            })
          }
          .width('100%')
        }
        .height('100%')
        .backgroundColor(0xF1F3F5)
      }
    }
    

    審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 鴻蒙
    +關注

    關注

    57

    文章

    2369

    瀏覽量

    42900
收藏 人收藏

    評論

    相關推薦

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

    Ability模塊提供對Ability生命周期、上下文環境等調用管理的能力,包括Ability創建、銷毀、轉儲客戶端信息等。
    的頭像 發表于 04-30 17:42 ?2288次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>接口<b class='flag-5'>Ability</b>框架:【@ohos.application.<b class='flag-5'>Ability</b> (<b class='flag-5'>Ability</b>)】

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

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

    鴻蒙Ability開發-Stage模型下Ability的創建和使用

    Ability開發技術的簡單運用,更多的鴻蒙開發技術可以前往我主頁查詢,下面分享鴻蒙開發4.0
    發表于 01-08 15:34

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

    在進一步實踐之前,需要先弄明白一個概念:Ability。不知道你有沒有注意到,使用鴻蒙開發工具DevEco Studio創建項目時,我們選擇創建的是一個個Ability。這是為什么呢?
    發表于 11-30 20:56

    鴻蒙應用模型:【Ability Kit】簡介

    Ability Kit程序框架服務)提供了應用程序開發和運行的應用模型,是系統為開發者提供的應
    的頭像 發表于 05-29 14:41 ?673次閱讀
    <b class='flag-5'>鴻蒙</b>應用模型:【<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>】簡介

    鴻蒙Ability Kit程序框架服務)【Ability內頁面間的跳轉】

    基于Stage模型下的Ability開發,實現Ability內頁面間的跳轉和數據傳遞。
    的頭像 發表于 06-03 20:43 ?307次閱讀
    <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>內頁面間的跳轉】

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

    本示例展示通過[IDL的方式]和?[@ohos.rpc]?等接口實現了Ability與ServiceExtensionAbility之間的通信。
    的頭像 發表于 06-05 09:28 ?504次閱讀
    <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通信】

    鴻蒙開發Ability Kit程序框架服務:訪問控制概述 程序訪問控制

    默認情況下,應用只能訪問有限的系統資源。但某些情況下,應用存在擴展功能的訴求,需要訪問額外的系統數據(包括用戶個人數據)和功能,系統也必須以明確的方式對外提供接口來共享其數據或功能。
    的頭像 發表于 07-01 15:53 ?310次閱讀
    <b class='flag-5'>鴻蒙</b><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'>訪問</b><b class='flag-5'>控制</b>概述 <b class='flag-5'>程序</b><b class='flag-5'>訪問</b><b class='flag-5'>控制</b>

    鴻蒙開發Ability Kit程序框架服務:應用權限管控概述 程序訪問控制

    系統提供了一種允許應用訪問系統資源(如:通訊錄等)和系統能力(如:訪問攝像頭、麥克風等)的通用權限訪問方式,來保護系統數據(包括用戶個人數據)或功能,避免它們被不當或惡意使用。
    的頭像 發表于 07-01 10:21 ?487次閱讀
    <b class='flag-5'>鴻蒙</b><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'>程序</b><b class='flag-5'>訪問</b><b class='flag-5'>控制</b>

    鴻蒙開發Ability Kit程序訪問控制:向用戶申請單次授權

    受限開放的權限通常是不允許三方應用申請的。當應用在申請權限來訪問必要的資源時,發現部分權限的等級比應用APL等級高,開發者可以選擇通過ACL方式來解決等級不匹配的問題,從而使用受限權限。
    的頭像 發表于 07-02 17:48 ?521次閱讀
    <b class='flag-5'>鴻蒙</b><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'>訪問</b><b class='flag-5'>控制</b>:向用戶申請單次授權

    鴻蒙開發Ability Kit程序訪問控制:申請使用受限權限

    受限開放的權限通常是不允許三方應用申請的。當應用在申請權限來訪問必要的資源時,發現部分權限的等級比應用APL等級高,開發者可以選擇通過ACL方式來解決等級不匹配的問題,從而使用受限權限。
    的頭像 發表于 07-02 17:34 ?470次閱讀
    <b class='flag-5'>鴻蒙</b><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'>訪問</b><b class='flag-5'>控制</b>:申請使用受限權限

    鴻蒙開發Ability Kit程序訪問控制:對所有應用開放

    在申請目標權限前,建議開發者先閱讀[申請應用權限],對權限的工作流程有基本了解后,再結合以下權限字段的具體說明,判斷應用能否申請目標權限,提高開發效率。
    的頭像 發表于 07-02 14:32 ?486次閱讀
    <b class='flag-5'>鴻蒙</b><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'>訪問</b><b class='flag-5'>控制</b>:對所有應用開放

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

    安全控件是系統提供的一組系統實現的ArkUI組件,應用集成這類組件就可以實現在用戶點擊后自動授權,而無需彈窗授權。它們可以作為一種“特殊的按鈕”融入應用頁面,實現用戶點擊即許可的設計思路。
    的頭像 發表于 07-03 09:22 ?437次閱讀
    <b class='flag-5'>鴻蒙</b><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'>訪問</b><b class='flag-5'>控制</b>:安全<b class='flag-5'>控件</b>概述

    鴻蒙開發Ability Kit程序訪問控制:使用粘貼控件

    粘貼控件是一種特殊的系統安全控件,它允許應用在用戶的授權下無提示地讀取剪貼板數據。
    的頭像 發表于 07-03 09:15 ?327次閱讀
    <b class='flag-5'>鴻蒙</b><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'>訪問</b><b class='flag-5'>控制</b>:使用粘貼<b class='flag-5'>控件</b>

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

    位置控件使用直觀且易懂的通用標識,讓用戶明確地知道這是一個獲取位置信息的按鈕。這滿足了授權場景需要匹配用戶真實意圖的需求。只有當用戶主觀愿意,并且明確了解使用場景后點擊位置控件,應用才會獲得臨時的授權,獲取位置信息并完成相應的服務功能。
    的頭像 發表于 07-03 16:32 ?410次閱讀
    <b class='flag-5'>鴻蒙</b><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'>訪問</b><b class='flag-5'>控制</b>:使用位置<b class='flag-5'>控件</b>
    主站蜘蛛池模板: 国产精品午夜小视频观看| 乡村教师电影版| 成人久久欧美日韩一区二区三区| 午夜DY888国产精品影院| 美女被打开了屁股进去的视频| 国产成人教育视频在线观看| 诱受H嗯啊巨肉舍友1V1| 午夜福利体验免费体验区| 男人国产AV天堂WWW麻豆| 好吊日视频在线| 调教玩弄奶头乳夹开乳震动器| 中文字幕人成人乱码亚洲影视S | 国产亚洲精品网站在线视频| bbwvideos欧美老妇| 在线观看中文字幕国产| 无遮18禁在线永久免费观看挡| 欧美牲交视频免费观看K8经典| 久久国产免费一区二区三区| 国产精品自在拍在线播放| 成片免费观看视频大全| 97视频在线观看免费视频| 夜夜狂射影院欧美极品| 亚洲AV精品无码成人| 手机毛片在线| 日韩一区二区在线免费观看| 女朋友的妈妈在线观看| 久久水蜜桃亚洲AV无码精品偷窥| 国产亚洲精品欧洲在线视频| 动漫成人片| 超大BBWWW| DASD-700美谷朱里| 99精品国产免费观看视频| 2017必看无码作品| 中文字幕亚洲无限码| 曰本女人牲交视频免费| 一本色道久久综合亚洲AV蜜桃| 亚州日韩精品AV片无码中文| 无码一区二区在线欧洲| 无码内射成人免费喷射| 甜性涩爱快播| 性白俄罗斯高清xxxxx|