• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# postCardAction
2
3用于卡片内部和提供方应用间的交互,当前支持router、message和call三种类型的事件,仅在卡片中可以调用。
4
5> **说明:**
6>
7> 本接口从API version 9开始支持。
8
9## postCardAction
10
11postCardAction(component: Object, action: Object): void
12
13执行函数内部的交互,处理component和action对象的相关操作,不返回任何内容。
14
15**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
16
17**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
18
19**系统能力:** SystemCapability.ArkUI.ArkUI.Full
20
21**模型约束:**此接口仅可在Stage模型下使用。
22
23**参数:**
24
25
26| **参数名** | **类型** | **必填** | **说明** |
27| -------- | -------- | -------- | -------- |
28| component | Object | 是 | 当前自定义组件的实例,通常传入this。 |
29| action | Object | 是 | action的具体描述,详情见下表。 |
30
31
32action参数说明:
33
34
35| **参数名** | **类型** |  **必填** | **取值说明** |
36| -------- | -------- | -------- | -------- |
37| action | string | 是 |action的类型,支持三种预定义的类型:<br/>-&nbsp;router:跳转到提供方应用的指定UIAbility,只允许在点击事件中触发。<br/>-&nbsp;message:自定义消息,触发后会调用提供方FormExtensionAbility的[onFormEvent()](../apis-form-kit/js-apis-app-form-formExtensionAbility.md#formextensionabilityonformevent)生命周期回调。<br/>-&nbsp;call:后台启动提供方应用。触发后会拉起提供方应用的指定UIAbility(仅支持launchType为singleton的[UIAbility](../../application-models/uiability-launch-type.md),即启动模式为单实例的UIAbility),但不会调度到前台。提供方应用需要具备后台运行权限([ohos.permission.KEEP_BACKGROUND_RUNNING](../../security/AccessToken/permissions-for-all.md#ohospermissionkeep_background_running))。 |
38| bundleName | string | 否 | action为router&nbsp;/&nbsp;call&nbsp;类型时跳转的包名。 |
39| moduleName | string | 否 | action为router&nbsp;/&nbsp;call&nbsp;类型时跳转的模块名。 |
40| abilityName | string | 否 | action为router&nbsp;/&nbsp;call&nbsp;类型时跳转的UIAbility名。 |
41| uri<sup>11+</sup> | string   | 否   | action为router&nbsp;类型时跳转的UIAbility的统一资源标识符。uri和abilityName同时存在时,abilityName优先。 |
42| params | Object | 否 | 当前action携带的额外参数,内容使用JSON格式的键值对形式。 |
43
44>**说明:**
45>
46>"action"为"call"&nbsp;类型时,"params"需填入参数'method',且类型需为string类型,用于触发UIAbility中对应的方法。
47
48**示例:**
49
50<!--code_no_check-->
51
52```ts
53Button('跳转')
54  .width('40%')
55  .height('20%')
56  .onClick(() => {
57    postCardAction(this, {
58      action: 'router',
59      bundleName: 'com.example.myapplication',
60      abilityName: 'EntryAbility',
61      params: {
62        message: 'testForRouter' // 自定义要发送的message
63      }
64    });
65  })
66
67Button('拉至后台')
68  .width('40%')
69  .height('20%')
70  .onClick(() => {
71    postCardAction(this, {
72      action: 'call',
73      bundleName: 'com.example.myapplication',
74      abilityName: 'EntryAbility',
75      params: {
76        method: 'fun', // 自定义调用的方法名,必填
77        message: 'testForCall' // 自定义要发送的message
78      }
79    });
80  })
81
82Button('URI跳转')
83  .width('40%')
84  .height('20%')
85  .onClick(() => {
86    postCardAction(this, {
87      action: 'router',
88      uri: 'example://uri.ohos.com/link_page',
89      params: {
90        message: 'router msg for dynamic uri deeplink' // 自定义要发送的message
91      }
92    });
93  })
94
95```
96
97**待跳转应用 [module.json5](../../quick-start/module-configuration-file.md#skills标签) uris 配置示例:**
98
99```json
100"abilities": [
101  {
102    "skills": [
103      {
104        "uris": [
105          {
106            "scheme": "example",
107            "host": "uri.ohos.com",
108            "path": "link_page"
109          }
110        ]
111      }
112    ]
113  }
114]
115```
116