【HarmonyOS】服务卡片 API6 JSUI跳转不同页面

这篇具有很好参考价值的文章主要介绍了【HarmonyOS】服务卡片 API6 JSUI跳转不同页面。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【引言】

“JS卡片支持为组件设置action,包括router事件和message事件,其中router事件用于应用跳。若设置router事件,则action属性值为"router";abilityName为卡片提供方应用的跳转目标Ability名;params中的值按需填写,其值在使用时通过intent.getStringParam("params")获取即可;”这一段是HarmonyOS 官网对JS卡片router事件相关的描述。上述代码可以实现跳转到Java Ability页面的能力。

但是如果我们的应用使用的API6 JSUI进行开发的,使用这个router进行跳转后希望跳转的是对应的Js Page该如何操作?如下图中,服务卡片上有两个按钮”detail“和”mine“,我们希望点击detail跳转到detail对应的page,同理点击mine跳转到mine对应的page。

​​

【实现步骤】

对于这个需求我们可以借助一个单独的AceAbility来实现,以下是详细步骤:

第一步:

新建PageAbility继承AceAbility,在java目录下新建类型为Page的Ability如下:

【HarmonyOS】服务卡片 API6 JSUI跳转不同页面,harmonyos

在config.json中ability字段中对新增的PageAbility配置如下:

{
  "name": "com.example.routeram.PageAbility",
  "icon": "$media:icon",
  "description": "$string:pageability_description",
  "label": "$string:entry_PageAbility",
  "type": "page",
  "launchType": "standard"
}

第二步、在卡片的json文件中设置router事件,跳转到PageAbility中,这边对参数增加了一个type字段,后续就可以通过这个type字段判断是跳转到哪个js page中。

{
  "data": {
  },
  "actions": {
    "detailRouterEvent": {
      "action": "router",
      "bundleName": "com.example.routeram",
      "abilityName": "com.example.routeram.PageAbility",
      "params": {
        "type": "detail"
      }
    },
    "mineRouterEvent": {
      "action": "router",
      "bundleName": "com.example.routeram",
      "abilityName": "com.example.routeram.PageAbility",
      "params": {
        "type": "mine"
      }
    }
  }
}

第三步、在PageAbility的onStart方法中接收router 传过来的params(JSON格式),获取type字段进行跳转。

@Override
public void onStart(Intent intent) {
    IntentParams params = intent.getParams();
    if (params != null) {
        //获取routerEvent中的'params'
        String  data = (String) params.getParam("params");
        if(!data.isEmpty()){
            //通过ZSONObject获取对应的"type"的值
            ZSONObject zsonObject=ZSONObject.stringToZSON(data);
            String type= zsonObject.getString("type");
            setInstanceName("default");
            if(type.equals("detail")){
                //跳转不同页面
                setPageParams( "pages/detail/detail",null);
            }else if(type.equals("mine")){
                setPageParams( "pages/mine/mine",null);
            }
        }
        HiLog.info(TAG, "IntentParams: " + data);
    }
    super.onStart(intent);
}

【最后】

需要注意的是这边的setInstanceName对应的是Component Name一般我们把Js Page放在默认的default目录下,因此这边填写的是default;

setPageParams写的是page的路径,路径不正确会导致跳转异常。

 文章来源地址https://www.toymoban.com/news/detail-658968.html

到了这里,关于【HarmonyOS】服务卡片 API6 JSUI跳转不同页面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【HarmonyOS】【续集】实现从视频提取音频并保存到pcm文件功能(API6 Java)

    【】 视频提取类Extractor、视频编解码、保存pcm文件、getAudioTime 【背景和问题】 上篇中介绍了从视频提取音频并保存到pcm文件功能,请参考文档:https://developer.huawei.com/consumer/cn/forum/topic/0209125665541017202?fid=0101591351254000314,解码步骤使用的是普通模式进行解码,测试过程

    2024年02月13日
    浏览(40)
  • 【HarmonyOS】元服务服务卡片网络开发

    【】服务卡片、元服务、API6、网络请求、图片加载 一、API6服务卡片Java代码中如何进行网络请求? API6服务卡片基于FormAbility,一般元服务默认工程中的FormAbility就是MainAbility。由于FormAbility是Java语言编写的,可以使okhttp进行网络请求相关的开发。 1、添加依赖: 首先在

    2024年02月07日
    浏览(42)
  • Stage模型HarmonyOS服务卡片开发ArkTS卡片相关模块

    图1  ArkTS卡片相关模块   FormExtensionAbility:卡片扩展模块,提供卡片创建、销毁、刷新等生命周期回调。 FormExtensionContext:FormExtensionAbility的上下文环境,提供FormExtensionAbility具有的接口和能力。 formProvider:提供卡片提供方相关的接口能力,可通过该模块提供接口实现更新卡

    2024年02月12日
    浏览(45)
  • HarmonyOS元服务开发实践:桌面卡片字典

    一、项目说明 1.DEMO创意为卡片字典。 2.不同卡片显示不同内容:微卡、小卡、中卡、大卡,根据不同卡片特征显示同一个字的不同内容,基于用户习惯可选择喜欢的卡片。 3.万能卡片刷新:用户点击卡片刷新按钮查看新内容,同时卡片设置了定时刷新,让用户每天看到的卡片

    2024年02月14日
    浏览(35)
  • Stage模型HarmonyOS服务卡片开发整体说明

    服务卡片(以下简称“卡片”)是一种界面展示形式,可以将应用的重要信息或操作前置到卡片,以达到服务直达、减少体验层级的目的。卡片常用于嵌入到其他应用(当前卡片使用方只支持系统应用,如桌面)中作为其界面显示的一部分,并支持拉起页面、发送消息等基础

    2024年02月15日
    浏览(36)
  • HarmonyOS之页面跳转

    HarmonyOS之页面跳转 HarmonyOS 的页面调整可以分为两种类型: 页面内跳转,也就是同一个Ability的Slice之间的跳转 页面间调整,不同Ability页面之间的跳转 同一个Ability的Slice之间的跳转 跳转接口: 不同Ability之间的跳转 跳转接口:

    2024年02月13日
    浏览(43)
  • 华为 HarmonyOS 页面跳转

    我们新建2个页面(page),一个Hello World页面,一个Hello HarmonyOS页面,注意修改红色框内容,保持一致 导入导入router模块,页面跳转接口,添加按钮点击事件

    2024年01月24日
    浏览(46)
  • HarmonyOS/OpenHarmony元服务开发-卡片生命周期管理

    创建ArkTS卡片,需实现FormExtensionAbility生命周期接口。 1.在EntryFormAbility.ts中,导入相关模块。 2.在EntryFormAbility.ts中,实现FormExtensionAbility生命周期接口,其中在onAddForm的入参want中可以通过FormParam取出卡片的相关信息。 说明:FormExtensionAbility进程不能常驻后台,即在卡片生命周

    2024年02月15日
    浏览(39)
  • HarmonyOS router页面跳转

    默认启动页面index.ets 跳转目标页面TargetPage.ets 运行效果图如下:

    2024年02月21日
    浏览(31)
  • HarmonyOS/OpenHarmony元服务开发-ArkTS卡片运行机制

    一、实现原理 图1 ArkTS卡片实现原理   卡片使用方:显示卡片内容的宿主应用,控制卡片在宿主中展示的位置,当前仅系统应用可以作为卡片使用方。 卡片提供方:提供卡片显示内容的应用,控制卡片的显示内容、控件布局以及控件点击事件。 卡片管理服务:用于管理系统

    2024年02月16日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包