首页 > 其他分享 >关于Harmony OS中卡片的使用方法

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

时间:2024-12-28 12:26:26浏览次数:5  
标签:卡片 静态 call Harmony 组件 router message OS

关于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事件用于静态卡片跳转到对应的UIAbility
      FormLink({
        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跳转到对应的UIAbility
      FormLink({
        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接口。通过这些接口,开发者可以实现丰富的交互功能,提升用户体验。希望本文对你有所帮助!

标签:卡片,静态,call,Harmony,组件,router,message,OS
From: https://blog.csdn.net/Lin_Zhong_/article/details/144787236

相关文章

  • 高效搭建Nacos:实现微服务的服务注册与配置中心
    一、关于Nacos1.1简介Nacos(DynamicNamingandConfigurationService)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台。它旨在帮助开发者更轻松地构建、部署和管理分布式系统,特别是在微服务架构中。Nacos提供了简单易用的界面和丰富的功能,使得服务注册与发现、配......
  • cocoscreator自定义effect,实现图片溶解效果
    【游戏开发教程|  10堂课入门CocosCreatorShader|新手学习路线推荐】 webgl-shader入门  基础结构 ......
  • java通过模拟post方式提交表单实现图片上传功能实例
    java通过模拟post方式提交表单实现图片上传功能实例|Id|Title|DateAdded|SourceUrl|PostType|Body|BlogId|Description|DateUpdated|IsMarkdown|EntryName|CreatedTime|IsActive|AutoDesc|AccessPermission||-------------|-------------|-----......
  • nacos根据业务需要自定义命名空间
    创建个订单的命名空间 配置列表这里就有了   代码 浏览器访问但是,在实际使用的过程中,业务链是相互调用的,有的配置需要归类在同一命名空间下,下订单需要用户信息吧,或者把公共的配置放到一个单独的命名空间下去调用,向数据库,redis,Mq都可以抽成一个公共的配置。不......
  • Centos7下yum安装报错问题解决方法Cannot find a valid baseurl for repo: base/7/x86
    Cannotfindavalidbaseurlforrepo:base/7/x86_64 目录Cannotfindavalidbaseurlforrepo:base/7/x86_64 原因如下:1.网络问题2.错误的YUM源配置3.代理设置问题 原因如下:1.网络问题首先,检查系统的网络连接是否正常,可以通过以下命令测试:ping......
  • 使用Yersinia进行基于应用层的拒绝服务攻击(DoS):实战演练
    使用Yersinia进行基于应用层的拒绝服务攻击(DoS):实战演练环境配置与准备工作攻击机配置操作系统:UbuntuIP地址:192.168.1.80靶机配置操作系统:UbuntuIP地址:192.168.1.45工具安装与环境准备1.安装Yersinia确保在攻击机上已经安装了Yersinia工具。可以通过以下命令进行安......
  • nacos的public配置1
    接着上一篇讲,public是默认的,默认有个分组,那要是我有别的业务,比如我之前做的中台服务,400个多,我在的订单组有30等多个配置,每次搞活动又要做一堆促销活动,就是那种满减折扣之类的,每个商品组合又不懂得规则。我这里举两个例子,在上一篇的基础上增加促销一部与促销二部两个配置 ......
  • 接口对接Get/Post
    接口Get方法请求数据///接口请求Get///</summary>///<paramname="urlStr">接口地址</param>///<paramname="value">页眉参数</param>///<paramname="requestData">请求参数</param>///<retur......
  • MOS在关断的时候为啥会出现负压?有没有想过?
    1、感性负载引起的反电动势原理:当MOS管驱动感性负载如电机、变压器等时,在MOS管关断瞬间,电感中的电流不能突变,根据楞次定律,电感会产生一个与原电流方向相同的感应电动势来阻碍电流的减小,这个感应电动势会在MOS管两端产生一个很高的负压。影响因素:电感量越大,电流变化率越大,产生......
  • PostgreSQL 初始化配置设置
    title:PostgreSQL初始化配置设置date:2024/12/27updated:2024/12/27author:cmdragonexcerpt:PostgreSQL是一款广泛应用于企业级应用、数据仓库以及Web应用程序的强大数据库管理系统。在完成数据库的安装后,进行合理而有效的初始配置是确保数据库性能和安全性的......