关于创建一个新页面,官方文档里的示例是否有误?

发布于 2020-10-19 08:41
浏览
0收藏

不知道各位有没有看过 https://developer.harmonyos.com/cn/docs/documentation/doc-guides/start-second-page-0000000000029619,左侧快速入门/创建另一个页面的示例代码,要求去选择“New > Ability > Empty Feature Ability(Java)”。

然后在跳转的时候需要调用以下代码:

Intent secondIntent = new Intent();
               // 指定待启动FA的bundleName和abilityName
               Operation operation = new Intent.OperationBuilder()
                       .withDeviceId("")
                       .withBundleName("com.example.myapplication")
                       .withAbilityName("com.example.myapplication.SecondAbility")
                       .build();
               secondIntent.setOperation(operation);
               startAbility(secondIntent); // 通过AbilitySlice的startAbility接口实现启动另一个页面


但之后在看Ability模块的介绍时又写着:AbilitySlice间导航里如果两个AbilitySlice处于同一个Page的话只需要

button.setClickedListener(listener -> present(new TargetSlice(), new Intent()));

就直接可以完成跳转了,试了下的确可以直接跳,并且都不需要单独建一个Ability,然后再调用super.setMainRoute(XXXXAbilitySlice.class.getName());

也就是说只要建一个XXXXSlice extends AbilitySlice就可以了。

然后在代码中调用present(new XXXXSlice (), new Intent()));便可成功跳转。

实在是没搞懂官网示例的这个创建另一个页面以及跳转示例代码是什么场景,似乎唯一区别就是用“New > Ability > Empty Feature Ability(Java)”的方式创建出来的会在config.json中有对应的配置:

 {        "orientation": "landscape",
        "formEnabled": false,
        "name": "com.mazda.firsthmp.SecondAbility",
        "icon": "$media:icon",
        "description": "$string:secondability_description",
        "label": "entry",
        "type": "page",
        "launchType": "standard"  }


类似android开发的manifest中声明了新的activity,大家来讨论下吧

收藏
回复
举报
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源 去关联
    相关推荐