我们要知道一个概念 一个应用可以有多个模块 每个模块又可以有多个UIAbility 每个UIAbility又可以有多个页面
如何创建同模块的UIAbility
首先我们创建好项目之后 就是有一个UIAbility组件存在的 那么如果我想要在同模块创建一个UIAbility怎么创建
想要创建的模块-->>新建-->>Abilit就创建好了一个同模块的UIAbility
如果想要实现跳转 就需要在跳转的UIAbility中做操作
Button('点击去同模块的')
.onClick(()=>{
let wantInfo: Want = {
deviceId: '', // deviceId为空表示本设备
bundleName: 'com.example.myapplication',
moduleName: 'entry', // moduleName非必选
abilityName: 'EntryAbility1',
parameters: {
// 自定义信息
info: '来自EntryAbility 页面'
},
};
this.context.startAbility(wantInfo).then(() => {
console.log( 'startAbility success.');
}).catch((error: BusinessError) => {
console.log( 'startAbility failed.');
});
})
不知道bundleName的话可以看这个文件
moduleName代表是哪个模块 、
abilityName代表是要跳转的UIAbility名字
不知道的可以看下图
然后去测试机上试一下 同模块就能跳转了
不同模块的UIAbility拉起
首先我们先创建不同的模块
创建完成之后
在要拉起应用的模块写个按钮
Button('点击去不同模块的')
.onClick(()=>{
let wantInfo: Want = {
deviceId: '', // deviceId为空表示本设备
bundleName: 'com.example.myapplication',
moduleName: 'NoSameModel', // moduleName非必选
abilityName: 'NoSameModelAbility',
parameters: {
// 自定义信息
info: '来自EntryAbility 页面'
},
};
this.context.startAbility(wantInfo).then(() => {
console.log( 'startAbility success.');
}).catch((error: BusinessError) => {
console.log( 'startAbility failed.');
});
})
同上
不知道bundleName的话可以看这个文件
moduleName代表是哪个模块 、
abilityName代表是要跳转的UIAbility名字
不知道的可以看下图
最重要的一步 因为是跨模块拉起 所以编译的时候
1.
.
2.
把这两个模块都编译进去 这样的话
打开测试机 点击拉起不同模块按钮 就能拉起不同模块的UIAbility了