多Module和多Ability跳转应用示例
介绍
本示例通过DevEco Studio创建一个跨平台工程,在此基础上,展示多module之间的ability跳转, 以及同一个module下面的多个ability跳转功能。
效果预览
-
Android平台展示效果
-
iOS平台展示效果
-
鸿蒙平台展示效果
使用说明
- 打开app,首页显示第一个module第一个ability的标题以及两条文本内容,点击文本“Go To Page B”,会跳转到同一个module下另一个ability的页面,显示"First module Ability B Page B"。返回首页,点击“Go To Second Module”,会跳转到另外一个module下的ability的页面,显示“Second module Ability A Page A”。
- iOS系统点击左上角back,安卓系统左滑都可以返回原来ability的page。
注:在iOS设备上运行之前,需要在Xcode中的Info -> URL Types中的URL Schemes里添加包名:例如com.example.multiability。
工程目录
MultiAbility
├── AppScope // App信息配置文件
├── entry/src/main
│ ├── ets
│ │ ├── entryability // entry模块的应用入口
│ │ ├── nextability // 同一个module下的第二个ability的入口
│ │ └── pages
│ │ ├── Index.ets // 首页
│ │ └── IndexNext.ets // 第二个ability的页面
│ └── resources // 放置颜色、文字等资源
├── secondmodule/src/main
│ ├── ets
│ │ ├── secondmoduleability // 第二个模块secondmodule的应用入口
│ │ └── pages
│ │ └── Index.ets // secondmodule模块的首页
│ └── resources // 放置颜色、文字等资源
具体实现
-
该工程包含两个模块,分别是secondmodule和entry模块。
-
在secondmodule(Second Module)模块中,只有一个Ability(Ability A)以及一个Index(Page A)页面。具体代码见Index.ets。
-
在entry(FIrst Module)模块中,有两个Ability,分别对应两个页面。
-
nextability(Ability B)对应IndexNext(Page B)页面。具体代码见IndexNext.ets。
-
entryability(Ability A)对应Index(Page A)页面,在Index页面的onClick方法里,通过设置wantInfo,可跳转到同一模块下的另一个ability的页面,也可以跳转到不同模块下ability的页面。具体代码见Index.ets。
-
相关权限
不涉及。
依赖
不涉及。
约束与限制
- 本示例支持在Android\iOS\鸿蒙系统上运行。
- 本示例已适配API version 12及以上版本的ArkUI-X SDK。
- 本示例需要使用DevEco Studio NEXT Developer Beta1 (Build Version: 5.0.3.403, built on June 20, 2024)及以上版本才可编译运行。
下载
git init
git config core.sparsecheckout true
echo /MultiAbility > .git/info/sparse-checkout
git remote add origin https://gitcode.com/arkui-x/samples.git
git pull origin master