HarmonyOS 鸿蒙Next ArkTS语言教程入门学习第49天,使用显式Want启动Ability。
HarmonyOS 鸿蒙Next ArkTS语言教程入门学习第49天,使用显式Want启动Ability。 1、常见action与entities
action:表示调用方要执行的通用操作(如查看、分享、应用详情)。在隐式Want中,您可定义该字段,配合uri或parameters来表示对数据要执行的操作。
如打开,查看该uri数据。例如,当uri为一段网址,action为ohos.want.action.viewData则表示匹配可查看该网址的Ability。在Want内声明action字段
表示希望被调用方应用支持声明的操作。在被调用方应用配置文件skills字段内声明actions表示该应用支持声明操作。
常见action
- ACTION_HOME:启动应用入口组件的动作,需要和ENTITY_HOME配合使用;系统桌面应用图标就是显式的入口组件,点击也是启动入口组件;入口组件可以配置多个。
- ACTION_CHOOSE:选择本地资源数据,例如联系人、相册等;系统一般对不同类型的数据有对应的Picker应用,例如联系人和图库。
- ACTION_VIEW_DATA:查看数据,当使用网址uri时,则表示显示该网址对应的内容。
- ACTION_VIEW_MULTIPLE_DATA:发送多个数据记录的操作。
entities:表示目标Ability的类别信息(如浏览器、视频播放器),在隐式Want中是对action的补充。在隐式Want中,开发者可定义该字段,来过滤匹配应用的类别,例如必须是浏览器。在Want内声明entities字段表示希望被调用方应用属于声明的类别。在被调用方应用配置文件skills字段内声明entites表示该应用支持的类别。
常用entities
- ENTITY_DEFAULT:默认类别无实际意义。
- ENTITY_HOME:主屏幕有图标点击入口类别。
- ENTITY_BROWSABLE:指示浏览器类别。
2、使用显式Want启动Ability
在应用使用场景中,当用户点击某个按钮时,应用经常需要拉起指定UIAbility组件来完成某些特定任务。下面介绍如何通过显式Want拉起应用内一个指定UIAbility组件。
开发步骤
-
Stage模型工程内,创建一个Ability(此示例内命名为callerAbility)与相应Page(此示例中名为Index.ets),并在callerAbility.ts文件内的onWindowStageCreate函数内通过windowStage.loadContent()方法将两者绑定。
-
同上方法再创建一个Ability,此示例内命名为“calleeAbility”。
-
在callerAbility的“Index.ets”页面内新增一个按钮。
-
补充相对应的onClick方法,并使用显式Want在方法内启动calleeAbility。bundleName字段可在工程AppScope>app.json5文件内获取;abilityName可在对应模块内的“yourModuleName > src > main > module.json5”文件查看。
-
至此,当您点击CLICKME按钮时,应看到页面的跳转。
更多关于HarmonyOS 鸿蒙Next ArkTS语言教程入门学习第49天,使用显式Want启动Ability。的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
这个就是Android的intent,
更多关于HarmonyOS 鸿蒙Next ArkTS语言教程入门学习第49天,使用显式Want启动Ability。的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS中,使用显式Want启动Ability是一种常见的操作。显式Want通过指定目标Ability的Bundle名称和Ability名称来启动特定的Ability。
首先,显式Want的创建需要明确目标Ability的Bundle名称和Ability名称。例如:
let want = {
bundleName: "com.example.myapp",
abilityName: "com.example.myapp.MainAbility"
};
然后,通过startAbility
方法来启动目标Ability:
this.context.startAbility(want)
.then(() => {
console.log("Ability started successfully");
})
.catch((err) => {
console.error("Failed to start ability", err);
});
在上述代码中,this.context
是当前Ability的上下文对象。startAbility
方法会返回一个Promise,成功时执行then
中的代码,失败时执行catch
中的代码。
显式Want启动Ability适用于明确知道目标Ability的Bundle名称和Ability名称的场景,通常在同一应用内部使用。跨应用启动Ability通常使用隐式Want。
总结:显式Want通过指定Bundle名称和Ability名称来启动特定的Ability,适用于同一应用内部的Ability启动。
在HarmonyOS ArkTS语言中,使用显式Want启动Ability是通过指定目标Ability的Bundle名称和Ability名称来实现的。首先,导入featureAbility
模块,然后创建一个Want
对象,通过bundleName
和abilityName
属性指定目标Ability。最后,调用featureAbility.startAbility()
方法启动Ability。代码示例如下:
import featureAbility from '@ohos.ability.featureAbility';
let want = {
bundleName: "com.example.myapp",
abilityName: "com.example.myapp.MainAbility"
};
featureAbility.startAbility(want).then(() => {
console.log("Ability started successfully");
}).catch((error) => {
console.error("Failed to start Ability", error);
});
这种方式适用于明确知道目标Ability的场景,确保了启动的精确性。