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

news2025/1/22 21:00:42

【引言】

“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。

cke_7401.png​​

【实现步骤】

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

第一步:

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

在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的路径,路径不正确会导致跳转异常。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/895169.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hadoop学习:深入解析MapReduce的大数据魔力(三)

Hadoop学习:深入解析MapReduce的大数据魔力(三) 3.5 MapReduce 内核源码解析3.5.1 MapTask 工作机制3.5.2 ReduceTask 工作机制3.5.3 ReduceTask 并行度决定机制 3.6 数据清洗(ETL)1)需求2)需求…

一起创建Vue脚手架吧

目录 一、安装Vue CLI1.1 配置 npm 淘宝镜像1.2 全局安装1.3 验证是否成功 二、创建vue_test项目2.1 cmd进入桌面2.2 创建项目2.3 运行项目2.4 查看效果 三、脚手架结构分析3.1 文件目录结构分析3.2 vscode终端打开项目 一、安装Vue CLI CLI:command-line interface…

(搜索) 剑指 Offer 13. 机器人的运动范围 ——【Leetcode每日一题】

❓剑指 Offer 13. 机器人的运动范围 难度:中等 地上有一个 m 行 n 列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外)&…

基于 SpringBoot+Vue 的家政服务管理平台(附源码,数据库,教程)

文章目录 1. 背景2.主要技术3. 可行性分析4.系统设计5系统的详细设计与实现5.1前台模块设计5.2后台功能模块 源码下载地址 1. 背景 本系统主要是设计出家政服务管理平台,基于B/S构架,后台数据库采用了Mysql,可以使数据的查询和存储变得更加有…

宏工科技十五周年,“归零心态”竞逐全球

长久以来,物料处理领域一直处于被大型跨国企业垄断,或是国内厂商野蛮生长的状态,宏工科技在15年发展中,通过培育自身的技术创新与自主研发能力,在物料处理领域突围,实现跨行业发展、规模化扩张和持续增长。…

HCIP VLAN实验

VLAN实验 拓扑图配置和分析分析配置LSW1LSW2R1 测试dhcp获取ipICMP测试 拓扑图 配置和分析 分析 从题目来看,因为 pc 1 3都是vlan2而且还是不同网段,pc 2 4 5 6在同一网段,所以可以将pc 1 2 5 4 6分在一个网段 pc4不通5 6 ,那就…

【LVS】2、部署LVS-DR群集

LVS-DR数据包的流向分析 1.客户端发送请求到负载均衡器,请求的数据报文到达内核空间; 2.负载均衡服务器和正式服务器在同一个网络中,数据通过二层数据链路层来传输; 3.内核空间判断数据包的目标IP是本机VIP,此时IP虚…

嵌入式Linux开发实操(九):CAN接口开发

前言: CAN网络在汽车中的使用可以说相当广泛。而CAN网络需要的收发器最常用的就是NXP 的TJA1042: CAN网络:

【Docker】docker搭建Ftp服务器,真香

Docker搭建Ftp服务器,真香 1.搜索镜像2.进行下载3.启动docker4.访问5.兼容问题 方便公司正常内网传递大文件,FTP服务就派上用场了,ftp分为主动模式(PORT)和被动模式(PASV)。主动模式使用20和21端口,其中20为…

CL3闭环步进驱动器CL3-EC808AC

雷赛_交流伺服_步进_闭环步进_混合伺服_电机 安装图: 电流: 0.1A 0x2000-0030; // 单位 0.1A 一般用3A调试【30】 一圈脉冲: 0x2001-00 // 导程5mm 用50000 开环模式:0x2024-00 // 0开环 2闭环…

搞懂大模型的智能基因,RLHF系统设计关键问答

搞懂大模型的智能基因,RLHF系统设计关键问答 搞懂大模型的智能基因,RLHF系统设计关键问答1.RLHF是什么?2.RLHF适用于哪些任务?3 .RLHF和其他构建奖励模型的方法相比有何优劣?4 .什么样的人类反馈才是好的反馈5.RLHF算法…

算法通关村——位运算

1. 常见的位运算 1.1 与 & &:两个数对应的位都是1,那么结果才是1 1 & 1 1 1 & 0 0; 0 & 0 0; 1.2 或 | |: 只要两个数对应的位有一个1,结果就是1 1 | 1 1; 1 | 0 1; 0 | 0 0; 1.3 异或^ ^: 只有两个数的位都…

基于Python的微博大数据舆情分析,舆论情感分析可视化系统,可作为Python毕业设计

运行效果图 基于Python的微博大数据舆情分析,舆论情感分析可视化系统 系统介绍 微博舆情分析系统,项目后端分爬虫模块、数据分析模块、数据存储模块、业务逻辑模块组成。 先后进行了数据获取和筛选存储,对存储后的数据库数据进行提取分析处…

如何用轻叶H5制作一份调查问卷

在营销落地页中,问卷类H5是一种制作简单,易于传播的落地页,通过精巧的设计和严密的逻辑设置,问卷类H5的投放效果也是不容小觑的。 问卷类H5在制作中有以下不可缺少的要素: 清晰的标题和简要的说明 标题应该简明扼要地…

Web3 游戏七月洞察:迈向主流采用的临界点?

作者: lesleyfootprint.network 2023 年 7 月,Web3 游戏领域出现了小幅增长,但对于许多项目来说,用户采用仍然是一个持续的挑战。根据 Footprint Analytics 的数据,活跃的区块链游戏数量略有增加,达到 2,471 个。然而…

第三方支付

1、请求学习中心服务创建选课记录 2、请求订单服务创建商品订单、生成支付二维码。 3、用户扫码请求订单支付服务,订单支付服务请求第三方支付平台生成支付订单。 4、前端唤起支付客户端,用户输入密码完成支付。 5、第三方支付平台支付完成发起支付通…

基于国产安路FPGA的数据采集传输子系统设计

分 布 式 数 据 采 集 系 统 的 结 构 如 图 2 . 1 所示 , 主 要 有 传 感 器 网 络 、 数 据 采 集 传 输 子 系 统 、 数 据 汇 聚 平 台 、 数 据 采 集 系 统 控 制 终 端 等 部 分 。 &am…

【JavaEE进阶】MyBatis的创建及使用

文章目录 一. MyBatis简介二. MyBatis 使用1. 数据库和数据表的创建2. 创建Mybatis项目2.1 添加MyBatis框架支持2.2 设置MyBatis配置信息 3. MyBatis开发流程4. MyBatis查询数据库测试 三. MyBatis 流程1. MyBatis 查询数据库流程2. MyBatis 框架交互流程图 一. MyBatis简介 M…

最新k8s集群搭建教程

本次安装在vmware虚拟机下开启3台2核2g的Ubuntu20.04系统 master:192.168.192.137 node1:192.168.192.136 node2:192.168.192.138 关闭防火墙 先查看防火墙状态,如果是关闭就不用管 ufw status关闭selinux,如果没有安…

【sgDragSize】自定义拖拽修改DIV尺寸组件,适用于窗体大小调整

核心原理就是在四条边、四个顶点加上透明的div,给不同方向提供按下移动鼠标监听 ,对应计算宽度高度、坐标变化 特性: 支持设置拖拽的最小宽度、最小高度、最大宽度、最大高度可以双击某一条边,最大化对应方向的尺寸;再…