卡片事件能力说明

2024-01-25 12:20 更新

ArkTS卡片中提供了postCardAction()接口用于卡片内部和提供方应用间的交互,当前支持router、message和call三种类型的事件,仅在卡片中可以调用。

接口定义:postCardAction(component: Object, action: Object): void

接口参数说明:

参数名

参数类型

必填

参数描述

component

Object

当前自定义组件的实例,通常传入this。

action

Object

action的具体描述,详情见下表。

action参数说明:

Key

Value

样例描述

"action"

string

action的类型,支持三种预定义的类型:

  • "router":跳转到提供方应用的指定UIAbility。
  • "message":自定义消息。触发后会调用提供方FormExtensionAbility的onFormEvent()生命周期回调。
  • "call":后台启动提供方应用。触发后会拉起提供方应用的指定UIAbility(仅支持launchType为singleton的UIAbility,即启动模式为单实例的UIAbility),但不会调度到前台。提供方应用需要具备后台运行权限(ohos.permission.KEEP_BACKGROUND_RUNNING)。

"bundleName"

string

"router" / "call" 类型时跳转的包名,可选。

"moduleName"

string

"router" / "call" 类型时跳转的模块名,可选。

"abilityName"

string

"router" / "call" 类型时跳转的UIAbility名,必填。

"params"

Object

当前action携带的额外参数,内容使用JSON格式的键值对形式。"call"类型时需填入参数'method',且类型需要为string类型,用于触发UIAbility中对应的方法,必填。

postCardAction()接口示例代码:

  1. Button('跳转')
  2. .width('40%')
  3. .height('20%')
  4. .onClick(() => {
  5. postCardAction(this, {
  6. 'action': 'router',
  7. 'bundleName': 'com.example.myapplication',
  8. 'abilityName': 'EntryAbility',
  9. 'params': {
  10. 'message': 'testForRouter' // 自定义要发送的message
  11. }
  12. });
  13. })
  1. Button('拉至后台')
  2. .width('40%')
  3. .height('20%')
  4. .onClick(() => {
  5. postCardAction(this, {
  6. 'action': 'call',
  7. 'bundleName': 'com.example.myapplication',
  8. 'abilityName': 'EntryAbility',
  9. 'params': {
  10. 'method': 'fun', // 自定义调用的方法名,必填
  11. 'message': 'testForCall' // 自定义要发送的message
  12. }
  13. });
  14. })

以下介绍通过卡片事件实现的典型开发场景。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号