Want 概述

一、Want概述

1.1、Want的用途
  • 在Stage模型中,Want是对象间信息传递的载体,可以用在应用组件间的信息传递。相当于FA模型的Intent。
  • 作为startAbility的参数,包含指定的启动目标,以及启动时需要携带的相关数据(bundleName和AbilityName字段分别指明目标Ability所在应用的包名以及对应的Ability名称)。
1.2、Want的分类
  1. 显示Want
  • 在启动Ability时指定了abilityName和bundleName的Want叫做显示Want。
  • 当有明确处理请求的对象时,通过提供目标Ability所在应用的包名信息(bundleName),并在Want内指定abilityName即可启动目标Ability。显示Want通常在启动当前应用开发中某个已知的Ability时被用到。
let want:Want = {deviceId:'',bundleName:'',abilityName:''
}
  1. 隐式Want
  • 在启动时未指定abilityName和Want叫做隐式Want。
  • 在请求处理的对象不明确时,如开发者希望在当前应用中使用其他应用提供的某个能力(通过skill定义),而不关心提供该能力的具体应用时,可以使用隐式Want。例如使用隐式Want打开一个链接的请求时,系统将匹配声明支持该请求的所有应用,当未匹配到支持的应用时,系统将弹窗说明无法打开,当仅匹配一个时,系统将自动拉起对应应用,当匹配多个时,系统会弹出候选项,由用户自己选择
let want:Want = {action:'ohos,want,action,search',entities:['entity.system.browsable'],uri:'http://www.test.com/query/search',type:'text/plan'
}
  1. action表示调用方要执行的通用操作
  • action表示调用方要执行的通用操作(如查看,分享,应用详情)。在隐式Want中,可定义该字段,配合uri和parameters来表示对数据要执行的操作,比如打开,查看该uri数据等。
  • 当uri为一段网址时,action为’ohos.want.action.viewData’时,表示匹配可查看该网址的Ability。
  • 在Want内声明action字段,表示希望被调用方应用支持声明的操作。在被调用方应用配置文件skills字段内声明action字段,表示该应用支持声明操作。
  • 常见的action:
ACTION_HOEM启动应用入口组件的动作
ACTION_CHOOSE选择本地资源数据,例如联系人,相册等,系统一般对不同类型的数据有对应的Picker应用
ACTION_VIEW_DATA查看数据,但使用网址时,表示显示该网址对用的内容
ACTION_VIEW_MULTIPLE_DATA发送多个数据记录的操作
  1. entities表示目标Ability的类别信息
  • entities表示目标Ability的类别信息(浏览器,视频播放器),在隐式Want中是对action的补充
  • 在隐式Want中,开发者可定义该字段来过滤匹配应用的类别,例如是浏览器或者是播放器
  • 在Want中声明entities字段,表示希望被调用方应用属于声明的类型。在被调用方应用配置文件skills字段中声明entities,表示该应用支持的类别
ENTITY_DEFAULT默认类别,无实际意义
ENTITY_HOME主屏幕有图标单击入口类别
ENTITY_BROWSABLE指示浏览器类别
1.3、Want参数属性
名称类型描述
deviceIdstring表示目标Ability所在的设备ID,如果未设置,表示本设备
bundleNamestring表示目标Ability所在的应用名称
moduleNamestring表示目标Ability所在的模块名称
abilityNamestring表示目标的Ability名称,如果未设置该字段,则Want为隐式,如果在Want中同时指定了bundleName,moudleName和abilityName,Want可以直接匹配到指定的Ability
uristring表示携带的数据,一般配合type使用,指明待处理的数据类型,如果在Want中指定了uri,则Want将匹配指定的uri信息,包括sheme,shemeSpecificPart,authory和path信息
typestring表示携带数据类型,使用MIME类型规范,例如text/plane,image/*
actionstringaction表示调用方要执行的通用操作(如查看,分享,应用详情)。在隐式Want中,可定义该字段,配合uri和parameters来表示对数据要执行的操作,比如打开,查看该uri数据等。当uri为一段网址时,action为’ohos.want.action.viewData’时,表示匹配可查看该网址的Ability
entitiesArrayentities表示目标Ability的类别信息(浏览器,视频播放器),在隐式Want中是对action的补充。在隐式Want中,开发者可定义该字段来过滤匹配应用的类型,比如通过entity.system.browsable过滤掉非浏览器的应用
flagsnumber表示处理Want的方式,例如通过wantConstant.Flags.FLAG_ABILITY_CONTINUATION表示是否以设备间迁移方式启动Ability
parameters{[key:string]:any}用于传递参数,通过用户自定义的键值对进行数据填充,具体支持的数据类型如WantApi所示

二、显示Want启动Ability

/*** 使用显示Want跳转界面*/async explicitStartAbility(){let wantInfo:Want={deviceId:'',bundleName:'com.example.project1',abilityName:'SecondAbility'}let context = getContext(this) as common.UIAbilityContextawait context.startAbility(wantInfo)}
2.1、 Stage模型下上下文的获取
let context = getContext(this) as common.UIAbilityContext

三、隐式Want打开网页

/*** 使用隐式Want启动任务管理器*/
async implicitStartAbility(){let wantInfo : Want ={"action": "ohos.want.action.viewData","entities": [ "entity.system.browsable" ],"uri": "https://www.test.com:8080/query/student","type": "text/plain"}let context = getContext(this) as common.UIAbilityContextcontext.startAbility(wantInfo)
}

官方文档地址:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/explicit-implicit-want-mappings-0000001478061453-V2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/856106.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在2分钟内测出浓香型白酒的年份?

执笔 | 敏 敏 编辑 | 古利特 金庸先生所著的武侠小说《射雕英雄传》第十二回中,“北丐”洪七公在教授郭靖降龙十八掌时,用陈年美酒形容“亢龙有悔”——“(亢龙有悔)好比陈年美酒,上口不辣,后劲却醇厚无比…

【机器学习】使用Python实现图神经网络(GNN):图结构数据的分析与应用

🔥 个人主页:空白诗 文章目录 一、引言二、图神经网络的基础知识1. 图的基本概念和术语2. 传统的图分析方法3. 图神经网络的基本原理4. GNN的基本模型 三、主要的图神经网络模型1. 图卷积网络(Graph Convolutional Network, GCN)2…

签约+1!鼎鼎安全选择 TDengine Cloud 优化智能空闸开关

近日,全托管的物联网、工业大数据云服务平台 TDengine Cloud 又增加了一项新签约,成功应用于青岛鼎鼎安全技术有限公司智能空闸开关项目中。 据了解,在此次合作中,鼎鼎安全将其知名产品——智能空闸开关与 TDengine 的实时存储技术…

【并发编程】JUC并发编程

JUC并发编程 1. 线程基础知识复习2. CompletableFuture2.1 Future接口理论知识复习2.2 Future接口常用实现类FutureTask异步任务2.2.1 Future接口能干什么2.2.2 Future接口相关架构2.2.3 Future编码实战和优缺点分析2.2.4 完成一些复杂的任务 2.3 CompletableFuture对Future的改…

数学建模基础:统计模型

目录 前言 一、概率与统计基础 二、统计模型 三、Matlab统计工具箱 四、实例示范:市场调查分析 步骤 1:数据导入 步骤 2:数据可视化 步骤 3:建立多元线性回归模型 步骤 4:模型验证 步骤 5:模型应…

ArcGIS制作规划图卫星影像地图虚化效果

文章目录 一、效果展示二、加载数据三、效果制作四、注意事项一、效果展示 二、加载数据 订阅专栏后,从csdn私信查收实验数据资料,加载ArcGIS制作规划图卫星影像地图虚化效果.rar中的数据,如下所示: 三、效果制作 1. 创建掩膜图层 新建一个矢量图层,因为主要是作图需要…

深入探讨:UART与USART在单片机中串口的实际应用与实现技巧

单片机(Microcontroller Unit, MCU)是一种集成了处理器、存储器和输入输出接口的微型计算机。它广泛应用于嵌入式系统中,用于控制各类电子设备。UART和USART是单片机中常见的通信接口,负责串行数据传输。下面我们详细介绍它们在单…

Qt底层原理:深入解析QWidget的绘制技术细节(1)

在Qt5中,QWidget的绘制流程比较分散,网上介绍的文章也很少,因此写一篇文章总结记录一下这部分的知识点。 笔者使用的是Qt5.15.2的源码。 基本的绘制流程:从update到合成 更新请求(Invalidate): 当一个QWidg…

001、DM8安装

参照:https://eco.dameng.com/document/dm/zh-cn/pm/install-uninstall.html 1. 准备工作 操作系统查看 [rootora19c ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)新建用户 [rootora19c ~]# groupadd dinstall -g 2001 [rootora19c ~]# …

数据分析第十二讲 数据可视化入门(一)

数据可视化入门(一) 在完成了对数据的透视之后,我们可以将数据透视的结果通过可视化的方式呈现出来,简单的说,就是将数据变成漂亮的统计图表,因为人类对颜色和形状会更加敏感,然后再进一步解读…

OpenCV--图像的基本变换

图像的基本变换 代码和笔记 代码和笔记 import cv2 import numpy as np""" 图像的基本变换 """cat cv2.imread(./img/cat.jpeg)""" 缩放 """ # dsize:(499, 360)这里的宽高和numpy的行列是反过来的 interpolat…

AXI三板斧之Outstanding、Out-of-order、interleaving

1、AXI三板斧之Outstanding 可以不用等单个命令的响应,直接连续发送N个命令(N>1),假设Slave端的Outstanding能力为N时(N>1),那么Master端可以在Slave不返回读数据的情况下,连…

第8天:Django Admin高级配置

第8天:Django Admin高级配置 目标 定制Django Admin界面,提高数据管理效率。 任务概览 注册模型到Admin界面。定制Admin选项,如列表显示、搜索字段、过滤器等。 详细步骤 1. 注册模型到Admin界面 在Django Admin中注册模型&#xff0c…

SARscape——Frost斑点滤波

目录 一、算法原理1、概述2、参考文献 二、软件操作三、结果展示1、原始图像2、滤波结果 一、算法原理 1、概述 2、参考文献 [1] 廉小亲,黄雪,高超,等. 基于Frost滤波和改进CNN的SAR图像TR方法 [J]. 计算机仿真, 2023, 40 (05): 49-55233. [2] SAR图像相干斑滤波算法研究_朱俊…

资深专家教你如何开展新版FMEA培训

新版FMEA的出现,不仅优化了原有的分析流程,更引入了一系列创新的理念和方法,为企业提供了更为全面、细致的风险评估与管理手段。因此,开展新版FMEA培训对于提升企业的质量管理水平、增强产品竞争力具有重要意义。 本文&#xff0…

【昇思25天学习打卡营打卡指南-第一天】基本介绍与快速入门

昇思MindSpore介绍 昇思MindSpore是一个全场景深度学习框架,旨在实现易开发、高效执行、全场景统一部署三大目标。 其中,易开发表现为API友好、调试难度低;高效执行包括计算效率、数据预处理效率和分布式训练效率;全场景则指框架…

【CT】LeetCode手撕—92. 反转链表 II

目录 题目1- 思路2- 实现⭐92. 反转链表 II——题解思路 3- ACM实现 题目 原题连接:92. 反转链表 II 1- 思路 模式识别:翻转 给定 left 和 right 固定区间的链表 ——> ①虚拟头结点 ②三个指针方式实现 2- 实现 ⭐92. 反转链表 II——题解思路 c…

面向对象进阶--抽象(Java 抽象)详解

1.1 抽象类引入 父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了(因为子类对象会调用自己重写的方法)。换句话说,父类可能知道…

流媒体学习之路(WebRTC)——音频NackTracker优化思路(8)

流媒体学习之路(WebRTC)——音频NackTracker优化思路(8) —— 我正在的github给大家开发一个用于做实验的项目 —— github.com/qw225967/Bifrost目标:可以让大家熟悉各类Qos能力、带宽估计能力,提供每个环节关键参数调节接口并实…

数据结构——排序(期末总结)

1. 插入排序 1.1 直接插入排序 思想 假设第一个元素是已经排好序的元素&#xff0c;从第二个元素开始依次插入操作&#xff0c;大的放后面&#xff0c;小的放前面。 代码 void insert(int a[], int n) {int i, j, key;for (i 2; i < n; i){key a[i];j i - 1;while (j…