一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-07-03 16:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

使用位置控件

位置控件使用直觀且易懂的通用標識,讓用戶明確地知道這是一個獲取位置信息的按鈕。這滿足了授權(quán)場景需要匹配用戶真實意圖的需求。只有當用戶主觀愿意,并且明確了解使用場景后點擊位置控件,應用才會獲得臨時的授權(quán),獲取位置信息并完成相應的服務功能。

一旦應用集成了位置控件,用戶點擊該控件后,無論應用是否已經(jīng)申請過或被授予精準定位權(quán)限,都會在本次前臺期間獲得精準定位的授權(quán),可以調(diào)用位置服務獲取精準定位。

對于不是強位置關(guān)聯(lián)應用(例如導航、運動健康等)的應用,只在部分前臺場景需要使用位置信息(例如定位城市、打卡、分享位置等)。如果需要長時間使用或是在后臺使用位置信息,建議申請位置權(quán)限。

位置控件效果如圖所示。

zh-cn_image_0000001701982064

約束與限制

  • 精準定位的臨時授權(quán)會持續(xù)到滅屏、應用切后臺、應用退出等任一情況發(fā)生,然后恢復到臨時授權(quán)之前的授權(quán)狀態(tài)(授予/未授予/未申請)
  • 應用在授權(quán)期間沒有調(diào)用次數(shù)限制。
  • 為了保障用戶的隱私不被惡意應用獲取,應用需確保安全控件是可見的且用戶能夠識別的。開發(fā)者需要合理的配置控件的尺寸、顏色等屬性,避免視覺混淆的情況,如果發(fā)生因控件的樣式不合法導致授權(quán)失敗的情況,請檢查設備錯誤日志。
  • 開發(fā)前請熟悉鴻蒙開發(fā)指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

開發(fā)步驟

以在聊天界面發(fā)送實時定位信息為例。在當前場景下,應用僅需要在前臺期間,短暫地訪問當前位置,不需要長時間使用。此時,可以直接使用安全控件中的位置控件,免去權(quán)限申請和權(quán)限請求等環(huán)節(jié),獲得臨時授權(quán),滿足權(quán)限最小化,提升用戶的隱私體驗。

參考以下步驟,實現(xiàn)效果:點擊控件“當前位置”獲取臨時精準定位授權(quán),獲取授權(quán)后,彈窗提示具體位置信息,效果圖請見上文。

  1. 引入位置服務依賴。
    import { geoLocationManager } from '@kit.LocationKit';
    
  2. 添加位置控件和獲取當前位置信息。
    安全控件是由圖標、文本、背景組成的類似Button的按鈕,其中圖標、文本兩者至少有其一,背景是可選的。圖標和文本不支持自定義,僅支持在已有的選項中選擇。應用申明安全控件的接口時,分為傳參和不傳參兩種,不傳參默認創(chuàng)建圖標+文字+背景的按鈕,傳參根據(jù)傳入的參數(shù)創(chuàng)建,不包含沒有配置的元素。
    當前示例使用默認參數(shù),具體請參見[LocationButton控件]。此外,所有安全控件都繼承[安全控件通用屬性],可用于定制樣式。
    在LocationButton的onClick()回調(diào)中通過調(diào)用[geoLocationManager]模塊提供的方法獲取當前位置信息。HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
    搜狗高速瀏覽器截圖20240326151344.png
    import { geoLocationManager } from '@kit.LocationKit';
    import { promptAction } from '@kit.ArkUI';
    import { BusinessError } from '@kit.BasicServicesKit';
    
    // 獲取當前位置信息
    function getCurrentLocationInfo() {
      const requestInfo: geoLocationManager.LocationRequest = {
        'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX,
        'scenario': geoLocationManager.LocationRequestScenario.UNSET,
        'timeInterval': 1,
        'distanceInterval': 0,
        'maxAccuracy': 0
      };
      geoLocationManager.getCurrentLocation(requestInfo)
        .then((location: geoLocationManager.Location) = > {
          promptAction.showToast({ message: JSON.stringify(location) });
        })
        .catch((err: BusinessError) = > {
          console.error(`Failed to get current location. Code is ${err.code}, message is ${err.message}`);
        });
    }
    
    @Entry
    @Component
    struct Index {
      build() {
        Row() {
          Column({ space: 10 }) {
            LocationButton({
              icon: LocationIconStyle.LINES,
              text: LocationDescription.CURRENT_LOCATION,
              buttonType: ButtonType.Normal
            })
              .onClick((event: ClickEvent, result: LocationButtonOnClickResult) = > {
                if (result === LocationButtonOnClickResult.SUCCESS) {
                  // 免去權(quán)限申請和權(quán)限請求等環(huán)節(jié),獲得臨時授權(quán),獲取位置信息授權(quán)
                  getCurrentLocationInfo();
                } else {
                  promptAction.showToast({ message: '獲取位置信息失??!' })
                }
              })
          }
          .width('100%')
        }
        .height('100%')
        .backgroundColor(0xF1F3F5)
      }
    }
    

審核編輯 黃宇

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

    關(guān)注

    59

    文章

    2595

    瀏覽量

    43985
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

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

    Ability模塊提供對Ability生命周期、上下文環(huán)境等調(diào)用管理的能力,包括Ability創(chuàng)建、銷毀、轉(zhuǎn)儲客戶端信息等。
    的頭像 發(fā)表于 04-30 17:42 ?2772次閱讀
    <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>)】

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

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

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

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

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

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

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

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

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

    基于Stage模型下的Ability開發(fā),實現(xiàn)Ability內(nèi)頁面間的跳轉(zhuǎn)和數(shù)據(jù)傳遞。
    的頭像 發(fā)表于 06-03 20:43 ?636次閱讀
    <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)】

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

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

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

    默認情況下,應用只能訪問有限的系統(tǒng)資源。但某些情況下,應用存在擴展功能的訴求,需要訪問額外的系統(tǒng)數(shù)據(jù)(包括用戶個人數(shù)據(jù))和功能,系統(tǒng)也必須以明確的方式對外提供接口來共享其數(shù)據(jù)或功能。
    的頭像 發(fā)表于 07-01 15:53 ?559次閱讀
    <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>

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

    系統(tǒng)提供了一種允許應用訪問系統(tǒng)資源(如:通訊錄等)和系統(tǒng)能力(如:訪問攝像頭、麥克風等)的通用權(quán)限訪問方式,來保護系統(tǒng)數(shù)據(jù)(包括用戶個人數(shù)據(jù))或功能,避免它們被不當或惡意使用。
    的頭像 發(fā)表于 07-01 10:21 ?1059次閱讀
    <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>

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

    受限開放的權(quán)限通常是不允許三方應用申請的。當應用在申請權(quán)限來訪問必要的資源時,發(fā)現(xiàn)部分權(quán)限的等級比應用APL等級高,開發(fā)者可以選擇通過ACL方式來解決等級不匹配的問題,從而使用受限權(quán)限。
    的頭像 發(fā)表于 07-02 17:48 ?843次閱讀
    <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)

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

    受限開放的權(quán)限通常是不允許三方應用申請的。當應用在申請權(quán)限來訪問必要的資源時,發(fā)現(xiàn)部分權(quán)限的等級比應用APL等級高,開發(fā)者可以選擇通過ACL方式來解決等級不匹配的問題,從而使用受限權(quán)限。
    的頭像 發(fā)表于 07-02 17:34 ?844次閱讀
    <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)限

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

    在申請目標權(quán)限前,建議開發(fā)者先閱讀[申請應用權(quán)限],對權(quán)限的工作流程有基本了解后,再結(jié)合以下權(quán)限字段的具體說明,判斷應用能否申請目標權(quán)限,提高開發(fā)效率。
    的頭像 發(fā)表于 07-02 14:32 ?889次閱讀
    <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>:對所有應用開放

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

    安全控件是系統(tǒng)提供的一組系統(tǒng)實現(xiàn)的ArkUI組件,應用集成這類組件就可以實現(xiàn)在用戶點擊后自動授權(quán),而無需彈窗授權(quán)。它們可以作為一種“特殊的按鈕”融入應用頁面,實現(xiàn)用戶點擊即許可的設計思路。
    的頭像 發(fā)表于 07-03 09:22 ?824次閱讀
    <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>概述

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

    粘貼控件是一種特殊的系統(tǒng)安全控件,它允許應用在用戶的授權(quán)下無提示地讀取剪貼板數(shù)據(jù)。
    的頭像 發(fā)表于 07-03 09:15 ?704次閱讀
    <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>

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

    保存控件是一種特殊的安全控件,它允許用戶通過點擊按鈕臨時獲取存儲權(quán)限,而無需通過權(quán)限彈框進行授權(quán)確認。
    的頭像 發(fā)表于 07-03 14:40 ?789次閱讀
    <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>