鸿蒙Next中entry如何跳转feature
在鸿蒙Next开发中,如何实现entry模块跳转到feature模块?具体需要配置哪些依赖或路由规则?能否提供代码示例说明跳转流程?
2 回复
鸿蒙Next里,entry想跳feature?简单!用FeatureAbility的startAbility方法,传个Intent,带上目标feature的bundleName和abilityName,嗖一下就过去了!别忘在config.json里配好权限,不然门都找不到~
更多关于鸿蒙Next中entry如何跳转feature的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在鸿蒙Next中,entry模块跳转到feature模块可以通过隐式Want实现,因为feature模块是动态特性模块,不能直接使用相对路径或绝对路径跳转。以下是具体步骤和代码示例:
1. 配置feature模块的跳转信息
在feature模块的module.json5中,配置abilities的skills,定义跳转的action和entities:
{
"module": {
"abilities": [
{
"name": "FeatureAbility",
"srcEntry": "./ets/featureability/FeatureAbility.ts",
"skills": [
{
"actions": [
"action.feature.detail"
],
"entities": [
"entity.system.browsable"
]
}
]
}
]
}
}
2. 在entry模块中发起跳转
在entry模块的页面中,使用want参数指定action和entities,调用startAbility:
import common from '@ohos.app.ability.common';
import { BusinessError } from '@ohos.base';
let context: common.UIAbilityContext = ...; // 获取UIAbilityContext
let want = {
action: 'action.feature.detail',
entities: ['entity.system.browsable']
};
try {
context.startAbility(want)
.then(() => {
console.info('跳转feature成功');
})
.catch((error: BusinessError) => {
console.error('跳转失败: ' + error.message);
});
} catch (error) {
console.error('捕获异常: ' + error);
}
注意事项:
- 模块依赖:确保entry模块在
oh-package.json5中依赖了feature模块。 - 动态特性:feature模块需配置为动态特性(
"installationFree": true),且设备支持动态部署。 - 参数传递:可通过
want.parameters传递数据到feature模块。
通过隐式Want匹配action和entities,系统会自动定位并启动feature模块的对应Ability。

