关于HarmonyOS Next中卡片的使用方法

关于Harmony OS中卡片的使用方法

在Harmony OS中,静态卡片是一种非常有用的组件,用于提供应用内功能组件的交互和信息展示。本文将详细介绍如何在Harmony OS中使用静态卡片以及相关的API接口。

1. 概述

静态卡片是Harmony OS中的一种交互组件,用于静态卡片内部和提供方应用间的交互。它支持三种类型的事件:router、message和call。这些事件可以触发不同的操作,如跳转到指定的UIAbility、自定义消息触发后调用FormExtensionAbility的onFormEvent回调以及后台启动提供方应用等。

静态卡片只能在静态卡片中使用,并且该组件从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

2. 子组件

静态卡片组件仅支持单个子组件。

3. 接口

3.1 FormLink(options: FormLinkOptions)

FormLink是一个用于创建静态卡片交互组件的接口。它接受一个参数options,定义卡片信息。

3.1.1 参数说明
名称类型必填说明
actionstring支持三种预定义的类型:router、message和call。
moduleNamestringaction为router/call类型时跳转的模块名。
bundleNamestringaction为router/call类型时跳转的包名。
abilityNamestringaction为router/call类型时跳转的UIAbility名。
uri11+stringaction为router类型时跳转的URI标识符。uri和abilityName同时存在时,abilityName优先。
paramsObject当前action携带的额外参数,使用JSON格式的键值对形式。call类型时需填入method参数,且类型为字符串。

不推荐通过params传递卡片内部的状态变量。

3.1.2 原子化服务API与系统能力
  • 从API version 11开始,该接口支持在原子化服务中使用。
  • 从API version 11开始,该接口支持在原子化服务中使用。
  • 系统能力:SystemCapability.ArkUI.ArkUI.Full

3.2 AddFormMenuItem(want: Want, componentId: string, options?: AddFormOptions): void

AddFormMenuItem是一个用于实现应用内长按组件生成“添加至桌面”菜单的接口。开发者将卡片数据以及应用内功能组件ID传给卡片框架,点击事件会根据组件ID获取应用内功能组件的快照和位置,用于添加到桌面时的过渡动效。

3.2.1 参数说明
名称参数类型必填装饰器类型说明
wantWant@Prop待发布功能组件的want信息。
componentIdstring-应用内功能组件ID,组件ID对应的界面与待添加的服务卡片界面相似。
AddFormOptionsAddFormOptions-添加卡片选项。
3.2.2 AddFormMenuOptions对象说明
名称参数类型必填说明
formBindingDataFormBindingData卡片数据。
callbackAsyncCallback返回结果的回调。
styleFormMenuItemStyle菜单自定义样式信息。
3.2.3 FormMenuItemStyle对象说明
名称参数类型必填说明
optionsMenuItemOptions包含设置MenuItem的各项信息。

说明:仅在style配置为空或不配置时,使用默认的图标和menu文字。

3.3 事件

支持菜单点击事件。

4. 示例代码

以下是一个简单的示例代码,展示了如何使用FormLink接口创建静态卡片并处理不同类型的事件:

@Entry
@Component
struct FormLinkDemo {build() {Column() {Text("这是一个静态卡片").fontSize(20).margin(10)// router事件用于静态卡片跳转到对应的UIAbilityFormLink({action: "router",abilityName: "com.example.MainAbility",params: {'message': 'testForRouter' // 自定义要发送的message}}) {Button("router event").width(120)}.margin(10)// message事件触发FormExtensionAbility的onFormEvent生命周期FormLink({action: "message",abilityName: "com.example.MainAbility",params: {'messageEvent': 'messageEvent' // 自定义要发送的message}}) {Button("message event").width(120)}.margin(10)// call事件用于触发UIAbility中对应的方法FormLink({action: "call",abilityName: "com.example.MainAbility",params: {'method': 'funA', // 在EntryAbility中调用的方法名'num': 1 // 需要传递的其他参数}}) {Button("call event").width(120)}.margin(10)// router事件用于静态卡片deeplink跳转到对应的UIAbilityFormLink({action: "router",uri: 'example://uri.ohos.com/link_page',params: {'message': 'router msg for static uri deeplink' // 自定义要发送的message}}) {Button("deeplink event").width(120)}.margin(10)}.justifyContent(FlexAlign.Center).width('100%').height('100%')}
}

5. 权限与配置

在使用FormLink接口时,需要确保应用具有相应的权限。例如,当使用call事件时,需要具备后台运行权限(ohos.permission.KEEP_BACKGROUND_RUNNING)。此外,还需要在module.json5文件中进行相应的配置:

{"abilities": [{"skills": [{"uris": [{"scheme": "example","host": "uri.ohos.com","path": "link_page"}]}]}]
}

6. 总结

本文介绍了在Harmony OS中使用静态卡片的方法,包括如何创建静态卡片、处理不同类型的事件以及相关的API接口。通过这些接口,开发者可以实现丰富的交互功能,提升用户体验。希望本文对你有所帮助!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Doris安装部署

Doris 概述 Apache Doris由百度大数据部研发(之前叫百度 Palo,2018年贡献到 Apache 社区后,更名为 Doris ),在百度内部,有超过200个产品线在使用,部署机器超过1000台,单一业务最大可…

基于单片机的多功能视力保护器(论文+源码)

1.系统设计 多功能视力保护器在设计过程中能够对用户阅读过程中的各项数据信息进行控制,整体设计分为亮种模式,分别是自动模式,手动模式。在自动模式的控制下,当单片机检测当前光照不强且有人时就开启LED灯,并且会根据…

如何在 Ubuntu 22.04 上部署 Nginx 并优化以应对高流量网站教程

简介 本教程将教你如何优化 Nginx,使其能够高效地处理高流量网站。 Nginx 是一个强大且高性能的 Web 服务器,以其高效处理大量并发连接的能力而闻名,这使得它成为高流量网站的流行选择。 正确优化 Nginx 可以显著提高服务器的性能&#xff0…

【持续更新中】transformer详解和embedding大模型

这里记录一下自己学习embedding大模型的记录,涉及到transformer和bert这些。 一切都可以编码,比如说图片是三原色 背景介绍 训练集和测试集的分,无监督学习,现在基本都是使用无监督学习,有监督学习的话参考计算机视觉…

csrf跨站请求伪造(portswigger)无防御措施

前言:基础csrf学习(没有任何防御措施) 内容来自portswigger,一个靶场练习,国外的网站,可能需要翻墙 要使 CSRF 攻击成为可能,必须满足三个关键条件: 相关操作。应用程序中存在攻击…

cocos creator 3.x版本如何添加打开游戏时首屏加载进度条

前言 项目有一个打开游戏时添加载入进度条的需求。这个功能2.X版本是自带的,不知为何在3.X版本中移除了。 实现 先说一下解决思路,就是在引擎源码加载场景的位置插入一个方法,然后在游戏入口HTML处监听即可。 1.找到对应源码脚本 在coco…

Zookeeper在中间件的应用和在Spring Boot业务系统中实现分布式锁和注册中心的解决方案

前言 Zookeeper是什么? ZooKeeper 是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 分布式应…

idea报错:There is not enough memory to perform the requested operation.

文章目录 一、问题描述二、先解决三、后原因(了解) 一、问题描述 就是在使用 IDEA 写代码时,IDEA 可能会弹一个窗,大概提示你目前使用的 IDEA 内存不足,其实就是提醒你 JVM 的内存不够了,需要重新分配。弹…

Anaconda+PyTorch(CPU版)安装

1.Anaconda下载 Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 如果已安装python,下载之前要彻底删除之前下载的python 2.Anaconda安装 3.添加环境变量 //根据实际安装路径进行更改 D:\Anaconda D:\Anaconda\Scripts D:\…

使用apisix+oidc+casdoor配置微服务网关

一、服务架构图 二、安装配置 1. 安装配置apisix (1). 快速启动及验证: curl -sL https://run.api7.ai/apisix/quickstart | sh该命令启动 apisix-quickstart 和 etcd 两个容器,APISIX 使用 etcd 保存和同步配置。APISIX 和 etcd 容器使用 Docker 的 …

【数据仓库】hadoop3.3.6 安装配置

文章目录 概述下载解压安装伪分布式模式配置hdfs配置hadoop-env.shssh免密登录模式设置初始化HDFS启动hdfs配置yarn启动yarn 概述 该文档是基于hadoop3.2.2版本升级到hadoop3.3.6版本,所以有些配置,是可以不用做的,下面仅记录新增操作&#…

STM32中断详解

STM32中断详解 NVIC 中断系统中断向量表相关寄存器中断优先级中断配置 外部中断实验EXTI框图外部中断/事件线映射中断步骤初始化代码实现 定时器中断通用定时器相关功能标号1:时钟源标号 2:控制器标号 3:时基单元 代码实现 NVIC 中断系统 STM…

常见的中间件漏洞

1.tomcat 1.1 CVE-2017-12615(put上传) 当在Tomcat的conf(配置目录下)/web.xml配置文件中添加readonly设置为false时,将导致该漏洞产 ⽣,(需要允许put请求) , 攻击者可以利⽤PUT方法通过精心构造的数据包…

【JAVA】神经网络的基本结构和前向传播算法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默, 忍不住分享一下给大家。点击跳转到网站 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把…

Qt 12.28 day3

作业: 1】 思维导图 2】 在登录界面的登录取消按钮进行以下设置: 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&a…

Ubuntu 20.04.1 LTS搭建nginx + php7.4运行环境

本文基于https://www.rosehosting.com/blog/how-to-install-php-7-4-with-nginx-on-ubuntu-20-04/的翻译和实践记录。 安装 Nginx 默认情况下,最新版本的 Nginx 位于 Ubuntu 20.04 默认存储库中。您可以使用以下命令安装它: apt-get install nginx -y…

【专题】2024年出口跨境电商促销趋势白皮书报告汇总PDF洞察(附原数据表)

原文链接:https://tecdat.cn/?p38722 在当今全球化加速演进、数字经济蓬勃发展的大背景下,跨境电商行业正以前所未有的态势重塑国际贸易格局,成为各方瞩目的焦点领域。 根据亚马逊发布的《2024年出口跨境电商促销趋势白皮书》,…

UE5材质节点Camera Vector/Reflection Vector

Camera Vector相机向量,输出像素到相机的方向,结果归一化 会随着相机移动而改变 Reflection Vector 反射向量,物体表面法线反射到相机的方向,x和y和camera vector相反 配合hdr使用

【数据仓库】spark大数据处理框架

文章目录 概述架构spark 架构角色下载安装启动pyspark启动spark-sehll启动spark-sqlspark-submit经验 概述 Spark是一个性能优异的集群计算框架,广泛应用于大数据领域。类似Hadoop,但对Hadoop做了优化,计算任务的中间结果可以存储在内存中&a…

【Elasticsearch】集群配置深度解析与实践

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…