在HarmonyOS中,ArkTS语言widget卡片事件中的router类型是一种用于卡片内部和提供方应用间交互的事件类型。以下是对router类型的详细解释:
一、router类型的作用
router类型的事件主要用于在卡片中触发跳转到提供方应用的指定UIAbility。通过router事件,可以实现卡片与应用之间的无缝跳转,提升用户体验。
二、router类型的使用方式
在ArkTS中,可以通过postCardAction
接口触发router事件。该接口的定义如下:
postCardAction(component: Object, action: Object): void
其中,action
参数是一个对象,用于描述要执行的动作。对于router类型的事件,action
参数需要包含以下属性:
action
: 字符串类型,值为"router"
,表示要执行的动作是跳转。bundleName
(可选):字符串类型,表示目标应用的包名。如果未指定,则默认跳转到当前应用。abilityName
(必填):字符串类型,表示目标UIAbility的名称。params
(可选):JSON格式的键值对,用于传递额外的参数给目标UIAbility。
三、示例代码
以下是一个使用postCardAction
接口触发router事件的示例代码:
@Entry
@Component
struct WidgetCard {
build() {
Column() {
Button('跳转')
.width('40%')
.height('20%')
.onClick(() => {
postCardAction(this, {
'action': 'router',
'bundleName': 'com.example.myapplication', // 可选,如果跳转到当前应用则可以省略
'abilityName': 'EntryAbility', // 必填,目标UIAbility的名称
'params': { // 可选,传递给目标UIAbility的参数
'message': 'testForRouter' // 自定义要发送的message
}
});
});
}
.width('100%')
.height('100%')
}
}
在上面的示例中,当用户点击“跳转”按钮时,会触发postCardAction
接口,并传递一个包含action
、bundleName
、abilityName
和params
属性的对象。这将导致卡片跳转到指定应用的EntryAbility
,并传递一个包含message
的参数。
四、注意事项
abilityName
属性是必填的,它指定了要跳转到的UIAbility的名称。- 如果未指定
bundleName
属性,则默认跳转到当前应用。 params
属性是可选的,用于传递额外的参数给目标UIAbility。这些参数可以在目标UIAbility的onCreate
或onNewWant
生命周期回调中通过入参want
获取。
综上所述,router类型的事件在HarmonyOS的ArkTS语言widget卡片中扮演着重要的角色,它实现了卡片与应用之间的无缝跳转,并允许传递额外的参数。