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

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

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

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

鴻蒙Ability Kit(程序框架服務(wù))【顯式Want與隱式Want匹配規(guī)則】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-06 14:30 ? 次閱讀

顯式Want與隱式Want匹配規(guī)則

在啟動目標應(yīng)用組件時,會通過顯式[Want]或者隱式[Want]進行目標應(yīng)用組件的匹配,這里說的匹配規(guī)則就是調(diào)用方傳入的[want]參數(shù)中設(shè)置的參數(shù)如何與目標應(yīng)用組件聲明的配置文件進行匹配。

顯式Want匹配原理

顯式[Want]匹配原理如下表所示。

名稱類型匹配項必選規(guī)則
deviceIdstring留空將僅匹配本設(shè)備內(nèi)的應(yīng)用組件。
bundleNamestring如果指定abilityName,而不指定bundleName,則匹配失敗。
moduleNamestring留空時當同一個應(yīng)用內(nèi)存在多個模塊且模塊間存在重名應(yīng)用組件,將默認匹配第一個。
abilityNamestring該字段必須設(shè)置表示顯式匹配。
uristring系統(tǒng)匹配時將忽略該參數(shù),但仍可作為參數(shù)傳遞給目標應(yīng)用組件。
typestring系統(tǒng)匹配時將忽略該參數(shù),但仍可作為參數(shù)傳遞給目標應(yīng)用組件。
actionstring系統(tǒng)匹配時將忽略該參數(shù),但仍可作為參數(shù)傳遞給目標應(yīng)用組件。
entitiesArray系統(tǒng)匹配時將忽略該參數(shù),但仍可作為參數(shù)傳遞給目標應(yīng)用組件。
flagsnumber不參與匹配,直接傳遞給系統(tǒng)處理,一般用來設(shè)置運行態(tài)信息,例如URI數(shù)據(jù)授權(quán)等。
parameters{[key: string]: Object}不參與匹配,應(yīng)用自定義數(shù)據(jù)將直接傳遞給目標應(yīng)用組件。

隱式Want匹配原理

隱式[Want]匹配原理如下表所示。

名稱類型匹配項必選規(guī)則
deviceIdstring跨設(shè)備目前不支持隱式調(diào)用。
abilityNamestring該字段必須留空表示隱式匹配。
bundleNamestring匹配對應(yīng)應(yīng)用包內(nèi)的目標應(yīng)用組件。
moduleNamestring匹配對應(yīng)Module內(nèi)的目標應(yīng)用組件。
uristring參見[want參數(shù)的uri和type匹配規(guī)則]。
typestring參見[want參數(shù)的uri和type匹配規(guī)則]。
actionstring參見[want參數(shù)的action匹配規(guī)則]。
entitiesArray參見[want參數(shù)的entities匹配規(guī)則]。
flagsnumber不參與匹配,直接傳遞給系統(tǒng)處理,一般用來設(shè)置運行態(tài)信息,例如URI數(shù)據(jù)授權(quán)等。
parameters{[key: string]: Object}不參與匹配,應(yīng)用自定義數(shù)據(jù)將直接傳遞給目標應(yīng)用組件。

從隱式Want的定義,可得知:

  • 調(diào)用方傳入的want參數(shù),表明調(diào)用方需要執(zhí)行的操作,并提供相關(guān)數(shù)據(jù)以及其他應(yīng)用類型限制。
  • 待匹配應(yīng)用組件的skills配置,聲明其具備的能力([module.json5配置文件]參數(shù))。

系統(tǒng)將調(diào)用方傳入的want參數(shù)(包含action、entities、uri和type屬性)與已安裝待匹配應(yīng)用組件的skills配置(包含actions、entities、uris和type屬性)依次進行匹配。當四個屬性匹配均未配置,隱式匹配失敗。當四個屬性匹配均通過,則此應(yīng)用才會被應(yīng)用選擇器展示給用戶進行選擇。

want參數(shù)的action匹配規(guī)則

將調(diào)用方傳入的want參數(shù)的action與待匹配應(yīng)用組件的skills配置中的actions進行匹配。

  • 調(diào)用方傳入的want參數(shù)的action為空,待匹配Ability的skills配置中的actions為空,則action匹配失敗。
  • 調(diào)用方傳入的want參數(shù)的action不為空,待匹配應(yīng)用組件的skills配置中的actions為空,則action匹配失敗。
  • 調(diào)用方傳入的want參數(shù)的action為空,待匹配應(yīng)用組件的skills配置中的actions不為空,則action匹配成功。
  • 調(diào)用方傳入的want參數(shù)的action不為空,待匹配應(yīng)用組件的skills配置中的actions不為空且包含調(diào)用方傳入的want參數(shù)的action,則action匹配成功。
  • 調(diào)用方傳入的want參數(shù)的action不為空,待匹配應(yīng)用組件的skills配置中的actions不為空且不包含調(diào)用方傳入的want參數(shù)的action,則action匹配失敗。
    圖1 want參數(shù)的action匹配規(guī)則 want-action

want參數(shù)的entities匹配規(guī)則

將調(diào)用方傳入的want參數(shù)的entities與待匹配應(yīng)用組件的skills配置中的entities進行匹配。

  • 調(diào)用方傳入的want參數(shù)的entities為空,待匹配應(yīng)用組件的skills配置中的entities不為空,則entities匹配成功。
  • 調(diào)用方傳入的want參數(shù)的entities為空,待匹配應(yīng)用組件的skills配置中的entities為空,則entities匹配成功。
  • 調(diào)用方傳入的want參數(shù)的entities不為空,待匹配應(yīng)用組件的skills配置中的entities為空,則entities匹配失敗。
  • 調(diào)用方傳入的want參數(shù)的entities不為空,待匹配應(yīng)用組件的skills配置中的entities不為空且包含調(diào)用方傳入的want參數(shù)的entities,則entities匹配成功。
  • 調(diào)用方傳入的want參數(shù)的entities不為空,待匹配應(yīng)用組件的skills配置中的entities不為空且不完全包含調(diào)用方傳入的want參數(shù)的entities,則entities匹配失敗。
    圖2 want參數(shù)的entities匹配規(guī)則 want-entities

want參數(shù)的uri和type匹配規(guī)則

調(diào)用方傳入的want參數(shù)中設(shè)置uri和type參數(shù)發(fā)起啟動應(yīng)用組件的請求,系統(tǒng)會遍歷當前系統(tǒng)已安裝的組件列表,并逐個匹配待匹配應(yīng)用組件的skills配置中的uris數(shù)組,如果待匹配應(yīng)用組件的skills配置中的uris數(shù)組中只要有一個可以匹配調(diào)用方傳入的want參數(shù)中設(shè)置的uri和type即為匹配成功。

實際應(yīng)用中,uri和type共存在四種情況,下面將講解四種情況的具體匹配規(guī)則:

  • 調(diào)用方傳入的want參數(shù)的uri和type都為空。
    1. 如果待匹配應(yīng)用組件的skills配置中的uris數(shù)組為空,匹配成功。
    2. 如果待匹配應(yīng)用組件的skills配置中的uris數(shù)組中存在uri的scheme和type都為空的元素,匹配成功。
    3. 除以上兩種情況,其他情況均為匹配失敗。
  • 調(diào)用方傳入的want參數(shù)的uri不為空,type為空。
    1. 如果待匹配應(yīng)用組件的skills配置中的uris數(shù)組為空,匹配失敗。
    2. 如果待匹配應(yīng)用組件的skills配置中的uris數(shù)組存在一條數(shù)據(jù)[uri匹配]成功且type為空,則匹配成功,否則匹配失敗。
    3. 如果前兩條均匹配失敗,并且傳入的uri為文件路徑uri,則根據(jù)文件后綴獲取文件的MIME類型,如果該類型與skills文件中配置的type相匹配,則匹配成功。
  • 調(diào)用方傳入的want參數(shù)的uri為空,type不為空。
    1. 如果待匹配應(yīng)用組件的skills配置中的uris數(shù)組為空,匹配失敗。
    2. 如果待匹配應(yīng)用組件的skills配置中的uris數(shù)組存在一條數(shù)據(jù)uri的scheme為空且[type匹配]成功,則匹配成功,否則匹配失敗。
  • 調(diào)用方傳入的want參數(shù)的uri和type都不為空,如下圖所示。
    1. 如果待匹配應(yīng)用組件的skills配置中的uris數(shù)組為空,匹配失敗。
    2. 如果待匹配應(yīng)用組件的skills配置中的uris數(shù)組存在一條數(shù)據(jù)[uri匹配]和[type匹配]需要均匹配成功,則匹配成功,否則匹配失敗。

最左uri匹配:當配置文件待匹配應(yīng)用組件的skills配置中的uris數(shù)組中只配置scheme;或者只配置scheme和host;或者只配置scheme、host和port時。傳入want參數(shù)的uri的最左邊依次需要和scheme,或者scheme和host,或者scheme、host和port都匹配,才滿足最左uri匹配。

圖3 want參數(shù)中uri和type皆不為空時的匹配規(guī)則 want-uri-type1

為了簡化描述:

  • 稱調(diào)用方傳入的want參數(shù)中的uri參數(shù)為w_uri;待匹配應(yīng)用組件的skills配置中uri為s_uri,其中每個元素為s_uri。
  • 稱調(diào)用方傳入的want參數(shù)的type參數(shù)為w_type,待匹配應(yīng)用組件的skills數(shù)組中uris的type數(shù)據(jù)為s_type。

圖4 want參數(shù)中uri和type的具體匹配規(guī)則 want-uri-type2

uri匹配規(guī)則

具體的匹配規(guī)則如下:

  • 如果s_uri的scheme為空,當w_uri為空時匹配成功,否則匹配失敗。
  • 如果s_uri的host為空,當w_uri和s_uri的scheme相同時匹配成功,否則匹配失敗。
  • 如果s_uri的port為空,當w_uri和s_uri中的scheme和host相同時匹配成功,否則匹配失敗。
  • 如果s_uri的path、pathStartWith和pathRegex都為空,當w_uri和s_uri中的scheme,host和port相同時匹配成功,否則匹配失敗。
  • 如果s_uri的path不為空,當w_uri和s_uri全路徑表達式相同時匹配成功,否則繼續(xù)進行pathStartWith的匹配。
  • 如果s_uri的pathStartWith不為空,當w_uri包含s_uri前綴表達式時匹配成功,否則繼續(xù)進行pathRegex的匹配。
  • 如果s_uri的pathRegex不為空,當w_uri滿足s_uri正則表達式時匹配成功,否則匹配失敗。

說明:

待匹配應(yīng)用組件的skills配置的uris中scheme、host、port、path、pathStartWith和pathRegex屬性拼接,如果依次聲明了path、pathStartWith和pathRegex屬性時,uris將分別拼接為如下三種表達式:

  • 前綴uri表達式 :當配置文件只配置scheme,或者只配置scheme和host,或者只配置scheme,host和port時,參數(shù)傳入以配置文件為前綴的Uri
    • scheme://
    • scheme://host
    • scheme://host:port
  • 全路徑表達式scheme://host:port/path
  • 前綴表達式scheme://host:port/pathStartWith
  • 正則表達式scheme://host:port/pathRegex

系統(tǒng)應(yīng)用預(yù)留uri的scheme統(tǒng)一以ohos開頭,例如ohosclock://。三方應(yīng)用組件配置的uri不能與系統(tǒng)應(yīng)用重復(fù),否則會導致無法通過該uri拉起三方應(yīng)用組件。

type匹配規(guī)則

說明:

本章節(jié)所述的type匹配規(guī)則的適用性需建立在want參數(shù)內(nèi)type不為空的基礎(chǔ)上。當want參數(shù)內(nèi)type為空時請參見[want參數(shù)的uri和type匹配規(guī)則]。

具體的匹配規(guī)則如下:

  • 如果s_type為空,則匹配失敗。
  • 如果s_type或者w_type為通配符*/*,則匹配成功。
  • 如果s_type最后一個字符為通配符*,如prefixType/*,則當w_type包含prefixType/時匹配成功,否則匹配失敗。
  • 如果w_type最后一個字符為通配符*,如prefixType/*,則當s_type包含prefixType/時匹配成功,否則匹配失敗。

審核編輯 黃宇

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

    關(guān)注

    0

    文章

    403

    瀏覽量

    17475
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2339

    瀏覽量

    42812
收藏 人收藏

    評論

    相關(guān)推薦

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

    函數(shù) HiLog日志系統(tǒng)可以讓應(yīng)用按照指定類型、指定級別、指定格式字符串打印日志內(nèi)容,幫助開發(fā)者了解應(yīng)用/服務(wù)的運行狀態(tài),更好地調(diào)試程序。 HiLog提供了debug、info、warn、error以及fatal
    發(fā)表于 01-08 15:34

    OpenHarmony 3.1 Beta版本關(guān)鍵特性解析——探秘查詢

    /plain"}] }]完成上面兩步,系統(tǒng)就可以進行查詢了。系統(tǒng)按照查詢規(guī)則,將其他應(yīng)用的
    發(fā)表于 03-22 18:35

    HarmonyOS/OpenHarmony應(yīng)用開發(fā)-信息傳遞載體Want使用

    ohos.want.action.viewData則表示匹配可查看該網(wǎng)址的Ability。entities只讀Array否表示目標Ability額外的類別信息(如:瀏覽器,視頻播放器)
    發(fā)表于 02-06 10:28

    HarmonyOS/OpenHarmony應(yīng)用開發(fā)-stage使用顯示Want啟動Ability

    (this) as context.AbilityContext;await context.startAbility(want);console.info(`explicit start ability succeed&
    發(fā)表于 02-07 10:22

    HarmonyOS/OpenHarmony應(yīng)用開發(fā)-stage使用Want打開網(wǎng)址

    前提條件設(shè)備上安裝了一個或多個瀏覽器。1.創(chuàng)建stage項目2.新建一個Ability,名稱為LlqAbility3.新建一個page頁,并與新建的LlqAbility綁定4.瀏覽器應(yīng)用中通過
    發(fā)表于 02-08 10:39

    基于反饋信息的矩陣分解

    針對現(xiàn)有的基于用戶反饋信息的推薦系統(tǒng)推薦準確率不高的問題,提出了一種基于反饋信息的
    發(fā)表于 01-04 16:22 ?0次下載

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

    wantConstant模塊提供want中action和entity的權(quán)限列表的能力,包括系統(tǒng)公共事件宏,系統(tǒng)公共事件名稱等。
    的頭像 發(fā)表于 04-30 16:33 ?619次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā)接口<b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【@ohos.<b class='flag-5'>ability</b>.wantConstant (wantConstant)】

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

    Want模塊提供系統(tǒng)的基本通信組件的能力。
    的頭像 發(fā)表于 05-11 09:39 ?407次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā)接口<b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【@ohos.application.<b class='flag-5'>Want</b> (<b class='flag-5'>Want</b>)】

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

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

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

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

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

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

    鴻蒙Ability Kit程序框架服務(wù))【Want概述】

    [Want]是一種對象,用于在應(yīng)用組件之間傳遞信息。
    的頭像 發(fā)表于 06-06 09:16 ?514次閱讀
    <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'>服務(wù)</b>)【<b class='flag-5'>Want</b>概述】

    鴻蒙Ability Kit程序框架服務(wù))【使用Want打開網(wǎng)址】

    以打開瀏覽器為例,假設(shè)設(shè)備上安裝了一個或多個瀏覽器應(yīng)用。
    的頭像 發(fā)表于 06-07 09:51 ?419次閱讀
    <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'>服務(wù)</b>)【使用<b class='flag-5'>隱</b><b class='flag-5'>式</b><b class='flag-5'>Want</b>打開網(wǎng)址】

    鴻蒙Ability Kit程序框架服務(wù))【應(yīng)用間使用Want分享數(shù)據(jù)】

    在應(yīng)用使用場景中,用戶經(jīng)常需要將應(yīng)用內(nèi)的數(shù)據(jù)(如文字、圖片等)分享至其他應(yīng)用以供進一步處理。Want支持實現(xiàn)應(yīng)用間的數(shù)據(jù)分享。
    的頭像 發(fā)表于 06-07 15:19 ?350次閱讀
    <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'>服務(wù)</b>)【應(yīng)用間使用<b class='flag-5'>Want</b>分享數(shù)據(jù)】

    鴻蒙開發(fā):信息傳遞載體Want

    其中,一種常見的使用場景是作為[`startAbility()`]方法的參數(shù)。例如,當UIAbilityA需要啟動UIAbilityB并向UIAbilityB傳遞一些數(shù)據(jù)時,可以使用Want作為一個載體,將數(shù)據(jù)傳遞給UIAbilityB。
    的頭像 發(fā)表于 06-21 15:14 ?439次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā):信息傳遞載體<b class='flag-5'>Want</b>
    主站蜘蛛池模板: 欧美jizz19性欧美| 精品日韩欧美一区二区三区| 亚洲区视频| 美女脱光app| 嘟嘟嘟影院免费观看视频| 亚州免费一级毛片| 乱爱性全过程免费视频| 荡乳乱公小说| 亚洲伊人久久一次| 男人脱女人衣服吃奶视频| 国产高清国内精品福利色噜噜| 亚洲精品久久久久AV无码林星阑| 伦理片在线3348| 高清国语自产拍在线| 一攻多受高h大总攻| 欧美一第一页草草影院| 国产人妻午夜无码AV天堂| 2022国产麻豆剧传媒剧情| 国产强奷伦奷片| 一级毛片西西人体44rt高清| 欧美一区二区三区播放| 国产亚洲精品精品精品| 973午夜伦伦电影论片| 网友自拍偷拍| 猫咪www958ii| 国产精品久久久久久搜索| 中国农村妇女真实BBWBBWBBW| 日韩中文亚洲欧美视频二| 久久99热这里只频精品6| 成人性生交大片免费看中文| 一本到高清视频在线观看三区| 热の中文 AV天堂| 九九热这里有精品| 东北老妇xxxxhd| 越南女子杂交内射BBWXZ| 色女仆影院| 泷泽萝拉首部av| 国产情侣真实露脸在线| 99这里只有是精品2| 亚洲精品色情婷婷在线播放 | 免费成人小视频|