From cd1edcc99138d79d1cc8bee49f3a01b54b869f29 Mon Sep 17 00:00:00 2001 From: duao oh Date: Mon, 8 Jan 2024 22:11:37 +0800 Subject: [PATCH 01/14] =?UTF-8?q?[bugfix]:=E4=BF=AE=E5=A4=8D=E5=8D=A1?= =?UTF-8?q?=E7=89=87=E6=96=87=E6=A1=A3=E6=8F=8F=E8=BF=B0=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: duao oh --- ...ts-ui-widget-event-formextensionability.md | 7 ++- .../arkts-ui-widget-event-overview.md | 28 +--------- .../arkts-ui-widget-event-uiability.md | 16 +++--- .../arkts-ui-widget-image-update.md | 13 +---- .../arkts-ui-widget-interaction-overview.md | 3 +- .../arkts-ui-widget-page-animation.md | 38 ++++++------- .../arkts-ui-widget-update-by-proxy.md | 1 - .../arkts-ui-widget-update-by-time.md | 6 +-- .../arkts-ui-widget-working-principles.md | 4 +- .../js-ui-widget-development.md | 54 ++++++++++--------- .../reference/apis/Readme-CN.md | 1 + .../reference/apis/js-apis-postCardAction.md | 34 ++++++++++++ 12 files changed, 98 insertions(+), 107 deletions(-) create mode 100644 zh-cn/application-dev/reference/apis/js-apis-postCardAction.md diff --git a/zh-cn/application-dev/application-models/arkts-ui-widget-event-formextensionability.md b/zh-cn/application-dev/application-models/arkts-ui-widget-event-formextensionability.md index 013faa26d8a..58c0fe89f8e 100644 --- a/zh-cn/application-dev/application-models/arkts-ui-widget-event-formextensionability.md +++ b/zh-cn/application-dev/application-models/arkts-ui-widget-event-formextensionability.md @@ -65,12 +65,11 @@ - 在FormExtensionAbility的onFormEvent生命周期中调用[updateForm](../reference/apis/js-apis-app-form-formProvider.md#updateform)接口刷新卡片。 ```ts - import formInfo from '@ohos.app.form.formInfo'; + import type Base from '@ohos.base'; import formBindingData from '@ohos.app.form.formBindingData'; import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; import formProvider from '@ohos.app.form.formProvider'; import hilog from '@ohos.hilog'; - import type Want from '@ohos.app.ability.Want'; const TAG: string = 'EntryFormAbility'; const DOMAIN_NUMBER: number = 0xFF00; @@ -89,9 +88,9 @@ let formInfo: formBindingData.FormBindingData = formBindingData.createFormBindingData(formData); formProvider.updateForm(formId, formInfo).then(() => { hilog.info(DOMAIN_NUMBER, TAG, 'FormAbility updateForm success.'); - }).catch((error) => { + }).catch((error: Base.BusinessError) => { hilog.info(DOMAIN_NUMBER, TAG, `Operation updateForm failed. Cause: ${JSON.stringify(error)}`); - }); + }) } ... } diff --git a/zh-cn/application-dev/application-models/arkts-ui-widget-event-overview.md b/zh-cn/application-dev/application-models/arkts-ui-widget-event-overview.md index aca40638b18..56b4ddb1ba4 100644 --- a/zh-cn/application-dev/application-models/arkts-ui-widget-event-overview.md +++ b/zh-cn/application-dev/application-models/arkts-ui-widget-event-overview.md @@ -1,36 +1,10 @@ # 卡片事件能力说明 -针对动态卡片,ArkTS卡片中提供了postCardAction()接口用于卡片内部和提供方应用间的交互,当前支持router、message和call三种类型的事件,仅在卡片中可以调用。 +针对动态卡片,ArkTS卡片中提供了[postCardAction()](../reference/apis/js-apis-postCardAction.md#postCardAction)接口用于卡片内部和提供方应用间的交互,当前支持router、message和call三种类型的事件,仅在卡片中可以调用。
针对静态卡片,ArkTS卡片提供了[FormLink](../reference/arkui-ts/ts-container-formlink.md)用于卡片内部和提供方应用间的交互。 ## 动态卡片事件能力说明 ![WidgetPostCardAction](figures/WidgetPostCardAction.png) -
接口定义:postCardAction(component: Object, action: Object): void - - -接口参数说明: - - -| **参数名** | **参数类型** | **必填** | **参数描述** | -| -------- | -------- | -------- | -------- | -| component | Object | 是 | 当前自定义组件的实例,通常传入this。 | -| action | Object | 是 | action的具体描述,详情见下表。 | - - -action参数说明: - - -| **Key** | **Value** | **样例描述** | -| -------- | -------- | -------- | -| "action" | string | action的类型,支持三种预定义的类型:
- "router":跳转到提供方应用的指定UIAbility。
- "message":自定义消息,触发后会调用提供方FormExtensionAbility的[onFormEvent()](../reference/apis/js-apis-app-form-formExtensionAbility.md#onformevent)生命周期回调。
- "call":后台启动提供方应用。触发后会拉起提供方应用的指定UIAbility(仅支持launchType为singleton的[UIAbility](uiability-launch-type.md),即启动模式为单实例的UIAbility),但不会调度到前台。提供方应用需要具备后台运行权限([ohos.permission.KEEP_BACKGROUND_RUNNING](../security/AccessToken/permissions-for-all.md#ohospermissionkeep_background_running))。 | -| "bundleName" | string | "action"为"router" / "call" 类型时跳转的包名,可选。 | -| "moduleName" | string | "action"为"router" / "call" 类型时跳转的模块名,可选。 | -| "abilityName" | string | "action"为"router" / "call" 类型时跳转的UIAbility名,必填。 | -| "params" | Object | 当前action携带的额外参数,内容使用JSON格式的键值对形式。必填。 | - ->![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** -> ->"action"为"call" 类型时,"params"需填入参数'method',且类型需为string类型,用于触发UIAbility中对应的方法。 `postCardAction()`接口示例代码: diff --git a/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md b/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md index 252847474a0..6b43111aee9 100644 --- a/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md +++ b/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md @@ -1,7 +1,7 @@ # 通过router或call事件刷新卡片内容 -在卡片页面中可以通过**postCardAction**接口触发router事件或者call事件拉起UIAbility,然后由UIAbility刷新卡片内容,下面是这种刷新方式的简单示例。 +在卡片页面中可以通过[postCardAction()](../reference/apis/js-apis-postCardAction.md#postCardAction)接口触发router事件或者call事件拉起UIAbility,然后由UIAbility刷新卡片内容,下面是这种刷新方式的简单示例。 > **说明:** > @@ -9,14 +9,14 @@ ## 通过router事件刷新卡片内容 -- 在卡片页面通过注册Button的onClick点击事件回调,并在回调中调用**postCardAction**接口触发router事件拉起UIAbility。 +- 在卡片页面通过注册Button的onClick点击事件回调,并在回调中调用[postCardAction()](../reference/apis/js-apis-postCardAction.md#postCardAction)接口触发router事件拉起UIAbility。 ```ts - let storageUpdtRouter = new LocalStorage(); + let storageUpdateRouter = new LocalStorage(); - @Entry(storageUpdtRouter) + @Entry(storageUpdateRouter) @Component - struct WidgetUpdtRouterCard { + struct WidgetUpdateRouterCard { @LocalStorageProp('routerDetail') routerDetail: ResourceStr = $r('app.string.init'); build() { @@ -92,7 +92,7 @@ let message: string = JSON.stringify(want.parameters.routerDetail); hilog.info(DOMAIN_NUMBER, TAG, `UpdateForm formId: ${curFormId}, message: ${message}`); let formData: Record = { - routerDetail: message + 'UIAbility.', // 和卡片布局中对应 + 'routerDetail': message + 'UIAbility.', // 和卡片布局中对应 }; let formMsg = formBindingData.createFormBindingData(formData); formProvider.updateForm(want.parameters[formInfo.FormParam.IDENTITY_KEY] + '', formMsg).then((data) => { @@ -171,9 +171,9 @@ - 在卡片页面通过注册Button的onClick点击事件回调,并在回调中调用**postCardAction**接口触发call事件拉起UIAbility。 ```ts - let storageUpdtCall = new LocalStorage(); + let storageUpdateCall = new LocalStorage(); - @Entry(storageUpdtCall) + @Entry(storageUpdateCall) @Component struct WidgetUpdateCallCard { @LocalStorageProp('formId') formId: string = '12400633174999288'; diff --git a/zh-cn/application-dev/application-models/arkts-ui-widget-image-update.md b/zh-cn/application-dev/application-models/arkts-ui-widget-image-update.md index cb8beb94752..2bb9b5672bd 100644 --- a/zh-cn/application-dev/application-models/arkts-ui-widget-image-update.md +++ b/zh-cn/application-dev/application-models/arkts-ui-widget-image-update.md @@ -13,16 +13,9 @@ import type fileFs from '@ohos.file.fs'; import formBindingData from '@ohos.app.form.formBindingData'; import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; - import formInfo from '@ohos.app.form.formInfo'; - import formProvider from '@ohos.app.form.formProvider'; import fs from '@ohos.file.fs'; - import hilog from '@ohos.hilog'; - import request from '@ohos.request'; import type Want from '@ohos.app.ability.Want'; - const TAG: string = 'WgtImgUpdateEntryFormAbility'; - const DOMAIN_NUMBER: number = 0xFF00; - export default class WgtImgUpdateEntryFormAbility extends FormExtensionAbility { // 在添加卡片时,打开一个本地图片并将图片内容传递给卡片页面显示 onAddForm(want: Want): formBindingData.FormBindingData { @@ -38,7 +31,7 @@ }; } catch (e) { console.error(`openSync failed: ${JSON.stringify(e as Base.BusinessError)}`); - }; + } class FormDataClass { text: string = 'Image: Bear'; @@ -64,12 +57,10 @@ import type fileFs from '@ohos.file.fs'; import formBindingData from '@ohos.app.form.formBindingData'; import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; - import formInfo from '@ohos.app.form.formInfo'; import formProvider from '@ohos.app.form.formProvider'; import fs from '@ohos.file.fs'; import hilog from '@ohos.hilog'; import request from '@ohos.request'; - import type Want from '@ohos.app.ability.Want'; const TAG: string = 'WgtImgUpdateEntryFormAbility'; const DOMAIN_NUMBER: number = 0xFF00; @@ -132,7 +123,7 @@ } ``` -4. 在卡片页面通过Image组件展示EntryFormAbility传递过来的卡片内容。 +4. 在卡片页面通过backgroundImage属性展示EntryFormAbility传递过来的卡片内容。 ```ts let storageWidgetImageUpdate = new LocalStorage(); diff --git a/zh-cn/application-dev/application-models/arkts-ui-widget-interaction-overview.md b/zh-cn/application-dev/application-models/arkts-ui-widget-interaction-overview.md index 0ef91cf7071..c8594478c38 100644 --- a/zh-cn/application-dev/application-models/arkts-ui-widget-interaction-overview.md +++ b/zh-cn/application-dev/application-models/arkts-ui-widget-interaction-overview.md @@ -1,6 +1,7 @@ # 卡片数据交互说明 -ArkTS卡片框架提供了updateForm()接口和requestForm()接口主动触发卡片的页面刷新,通过[LocalStorageProp](../quick-start/arkts-localstorage.md#localstorageprop)确认需要刷新的卡片数据。 +ArkTS卡片框架提供了[updateForm()](../reference/apis/js-apis-app-form-formProvider.md#updateform)接口和requestForm()接口主动触发卡片的页面刷新,通过[LocalStorageProp](../quick-start/arkts-localstorage.md#localstorageprop)确认需要刷新的卡片数据。 + ![WidgetLocalStorageProp](figures/WidgetLocalStorageProp.png) diff --git a/zh-cn/application-dev/application-models/arkts-ui-widget-page-animation.md b/zh-cn/application-dev/application-models/arkts-ui-widget-page-animation.md index 769bc24d07d..c728aa42b0e 100644 --- a/zh-cn/application-dev/application-models/arkts-ui-widget-page-animation.md +++ b/zh-cn/application-dev/application-models/arkts-ui-widget-page-animation.md @@ -24,32 +24,24 @@ ArkTS卡片开放了使用动画效果的能力,支持[显式动画](../refere ```ts @Entry @Component -struct AttrAnimationCard { +struct AnimationCard { @State rotateAngle: number = 0; build() { - Column() { - Button() { - Text($r('app.string.change_rotate_angle')) - .fontColor('#45A6F4') - .fontSize(12) - } - .width(120) - .height(32) - .backgroundColor('#FFFFFF') - .borderRadius(16) - .onClick(() => { - this.rotateAngle = (this.rotateAngle === 0 ? 90 : 0); - }) - .rotate({ angle: this.rotateAngle }) - .animation({ - curve: Curve.EaseOut, - playMode: PlayMode.Normal, - }) - }.height('100%').width('100%') - .justifyContent(FlexAlign.Center) - .backgroundImage($r('app.media.CardExampleBkg')) - .backgroundImageSize(ImageSize.Cover) + Row() { + Button('change rotate angle') + .height('20%') + .width('90%') + .margin('5%') + .onClick(() => { + this.rotateAngle = (this.rotateAngle === 0 ? 90 : 0); + }) + .rotate({ angle: this.rotateAngle }) + .animation({ + curve: Curve.EaseOut, + playMode: PlayMode.Normal, + }) + }.height('100%').alignItems(VerticalAlign.Center) } } ``` diff --git a/zh-cn/application-dev/application-models/arkts-ui-widget-update-by-proxy.md b/zh-cn/application-dev/application-models/arkts-ui-widget-update-by-proxy.md index ed4d537de43..678b4d9cd03 100644 --- a/zh-cn/application-dev/application-models/arkts-ui-widget-update-by-proxy.md +++ b/zh-cn/application-dev/application-models/arkts-ui-widget-update-by-proxy.md @@ -80,7 +80,6 @@ > > key可以是uri也可以是简单字符串,subscriberId默认值为当前formId,实际取值都依赖于数据发布方的定义。 ```ts - import formInfo from '@ohos.app.form.formInfo'; import formBindingData from '@ohos.app.form.formBindingData'; import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; import hilog from '@ohos.hilog'; diff --git a/zh-cn/application-dev/application-models/arkts-ui-widget-update-by-time.md b/zh-cn/application-dev/application-models/arkts-ui-widget-update-by-time.md index 0356f443d12..776f51a03b6 100644 --- a/zh-cn/application-dev/application-models/arkts-ui-widget-update-by-time.md +++ b/zh-cn/application-dev/application-models/arkts-ui-widget-update-by-time.md @@ -14,7 +14,7 @@ > 也可以为已经安装的应用动态配置刷新周期,用来限制卡片刷新周期的时长,以达到降低周期刷新进程启动次数的目的。 >
● 当配置了`updateDuration`(定时刷新)后,若应用市场动态配置了该应用的刷新周期, > 卡片框架会将form_config.json文件中配置的刷新周期与应用市场配置的刷新周期进行比较,取较长的刷新周期做为该卡片的定时刷新周期。 - >
● 若应用市场未动态配置该应用的刷新周期,则以form_config.json文件中配置的定时刷新为准。 + >
● 若应用市场未动态配置该应用的刷新周期,则以form_config.json文件中配置的刷新周期为准。 >
● 若该卡片取消定时刷新功能,该规则将无效。 >
● 卡片定时刷新的更新周期单位为30分钟。应用市场配置的刷新周期范围是1~336,即最短为半小时(1 * 30min)刷新一次,最长为一周(336 * 30min)刷新一次。 >
● 该规则从API11开始生效。若小于API11,则以form_config.json文件中配置的刷新周期为准。 @@ -81,9 +81,7 @@ ```ts import type Base from '@ohos.base'; - import formBindingData from '@ohos.app.form.formBindingData'; import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; - import formInfo from '@ohos.app.form.formInfo'; import formProvider from '@ohos.app.form.formProvider'; import hilog from '@ohos.hilog'; @@ -107,7 +105,7 @@ }); } catch (err) { hilog.info(DOMAIN_NUMBER, TAG, `Failed to setFormNextRefreshTime. Code: ${(err as Base.BusinessError).code}, message: ${(err as Base.BusinessError).message}`); - }; + } } ... } diff --git a/zh-cn/application-dev/application-models/arkts-ui-widget-working-principles.md b/zh-cn/application-dev/application-models/arkts-ui-widget-working-principles.md index c1a0c733bcc..6a6e4f44365 100644 --- a/zh-cn/application-dev/application-models/arkts-ui-widget-working-principles.md +++ b/zh-cn/application-dev/application-models/arkts-ui-widget-working-principles.md @@ -34,7 +34,7 @@ - 增强了卡片的能力,使卡片更加万能。 - 新增了动效的能力:ArkTS卡片开放了[属性动画](../reference/arkui-ts/ts-animatorproperty.md)和[显式动画](../reference/arkui-ts/ts-explicit-animation.md)的能力,使卡片的交互更加友好。 - - 新增了自定义绘制的能力:ArkTS卡片开放了[Canvas](../reference/arkui-ts/ts-components-canvas-canvas.md)画布组件,卡片可以使用自定义绘制的能力构建更多样的显示和交互效果。 + - 新增了自定义绘制的能力:ArkTS卡片开放了[Canvas](../reference/arkui-ts/ts-components-canvas-canvas.md)画布组件的能力,卡片可以使用自定义绘制的能力构建更多样的显示和交互效果。 - 允许卡片中运行逻辑代码:开放逻辑代码运行后很多业务逻辑可以在卡片内部自闭环,拓宽了卡片的业务适用场景。 ## ArkTS卡片的约束 @@ -47,7 +47,7 @@ ArkTS卡片相较于JS卡片具备了更加丰富的能力,但也增加了使 - 不支持使用native语言开发。 -- 仅支持声明式范式的[部分](arkts-ui-widget-page-overview.md)组件、事件、动效、数据管理、状态管理和API能力。 +- 仅支持[声明式范式](../reference/arkui-ts/ts-components-summary.md)的部分组件、事件、动效、数据管理、状态管理和API能力。 - 卡片的事件处理和使用方的事件处理是独立的,建议在使用方支持左右滑动的场景下卡片内容不要使用左右滑动功能的组件,以防手势冲突影响交互体验。 diff --git a/zh-cn/application-dev/application-models/js-ui-widget-development.md b/zh-cn/application-dev/application-models/js-ui-widget-development.md index 20f0e650120..478da384c03 100644 --- a/zh-cn/application-dev/application-models/js-ui-widget-development.md +++ b/zh-cn/application-dev/application-models/js-ui-widget-development.md @@ -118,8 +118,8 @@ Stage卡片开发,即基于[Stage模型](stage-model-development-overview.md) hilog.info(DOMAIN_NUMBER, TAG, '[EntryFormAbility] onAddForm'); // 使用方创建卡片时触发,提供方需要返回卡片数据绑定类 let obj: Record = { - title: 'titleOnCreate', - detail: 'detailOnCreate' + 'title': 'titleOnCreate', + 'detail': 'detailOnCreate' }; let formData: formBindingData.FormBindingData = formBindingData.createFormBindingData(obj); return formData; @@ -132,8 +132,8 @@ Stage卡片开发,即基于[Stage模型](stage-model-development-overview.md) // 若卡片支持定时更新/定点更新/卡片使用方主动请求更新功能,则提供方需要重写该方法以支持数据更新 hilog.info(DOMAIN_NUMBER, TAG, '[EntryFormAbility] onUpdateForm'); let obj: Record = { - title: 'titleOnUpdate', - detail: 'detailOnUpdate' + 'title': 'titleOnUpdate', + 'detail': 'detailOnUpdate' }; let formData: formBindingData.FormBindingData = formBindingData.createFormBindingData(obj); formProvider.updateForm(formId, formData).catch((error: Base.BusinessError) => { @@ -252,7 +252,6 @@ import type common from '@ohos.app.ability.common'; import dataPreferences from '@ohos.data.preferences'; import formBindingData from '@ohos.app.form.formBindingData'; import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; -import formProvider from '@ohos.app.form.formProvider'; import hilog from '@ohos.hilog'; import type Want from '@ohos.app.ability.Want'; @@ -263,9 +262,9 @@ const DOMAIN_NUMBER: number = 0xFF00; let storeFormInfo = async (formId: string, formName: string, tempFlag: boolean, context: common.FormExtensionContext): Promise => { // 此处仅对卡片ID:formId,卡片名:formName和是否为临时卡片:tempFlag进行了持久化 let formInfo: Record = { - formName: formName, - tempFlag: tempFlag, - updateCount: 0 + 'formName': formName, + 'tempFlag': tempFlag, + 'updateCount': 0 }; try { const storage: dataPreferences.Preferences = await dataPreferences.getPreferences(context, DATA_STORAGE_PATH); @@ -292,8 +291,8 @@ export default class JsCardFormAbility extends FormExtensionAbility { } let obj: Record = { - title: 'titleOnCreate', - detail: 'detailOnCreate' + 'title': 'titleOnCreate', + 'detail': 'detailOnCreate' }; let formData: formBindingData.FormBindingData = formBindingData.createFormBindingData(obj); return formData; @@ -308,11 +307,8 @@ export default class JsCardFormAbility extends FormExtensionAbility { import type Base from '@ohos.base'; import type common from '@ohos.app.ability.common'; import dataPreferences from '@ohos.data.preferences'; -import formBindingData from '@ohos.app.form.formBindingData'; import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; -import formProvider from '@ohos.app.form.formProvider'; import hilog from '@ohos.hilog'; -import type Want from '@ohos.app.ability.Want'; const TAG: string = 'JsCardFormAbility'; const DATA_STORAGE_PATH: string = '/data/storage/el2/base/haps/form_store'; @@ -372,8 +368,8 @@ export default class EntryFormAbility extends FormExtensionAbility { // 若卡片支持定时更新/定点更新/卡片使用方主动请求更新功能,则提供方需要重写该方法以支持数据更新 hilog.info(DOMAIN_NUMBER, TAG, '[EntryFormAbility] onUpdateForm'); let obj: Record = { - title: 'titleOnUpdate', - detail: 'detailOnUpdate' + 'title': 'titleOnUpdate', + 'detail': 'detailOnUpdate' }; let formData: formBindingData.FormBindingData = formBindingData.createFormBindingData(obj); formProvider.updateForm(formId, formData).catch((error: Base.BusinessError) => { @@ -628,23 +624,25 @@ export default class EntryFormAbility extends FormExtensionAbility { import UIAbility from '@ohos.app.ability.UIAbility'; import AbilityConstant from '@ohos.app.ability.AbilityConstant'; import Want from '@ohos.app.ability.Want'; + import hilog from '@ohos.hilog'; const TAG: string = 'JsCardEntryAbility'; const DOMAIN_NUMBER: number = 0xFF00; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { - if (want.parameters) { - let params: Record = JSON.parse(JSON.stringify(want.parameters.params)); - // 获取router事件中传递的info参数 - if (params.info === 'router info') { - // do something - hilog.info(DOMAIN_NUMBER, TAG, `router info: ${params.info}`); - } - // 获取router事件中传递的message参数 - if (params.message === 'router message') { - // do something - hilog.info(DOMAIN_NUMBER, TAG, `router message: ${params.message}`); + if (want.parameters) { + let params: Record = JSON.parse(JSON.stringify(want.parameters.params)); + // 获取router事件中传递的info参数 + if (params.info === 'router info') { + // do something + hilog.info(DOMAIN_NUMBER, TAG, `router info: ${params.info}`); + } + // 获取router事件中传递的message参数 + if (params.message === 'router message') { + // do something + hilog.info(DOMAIN_NUMBER, TAG, `router message: ${params.message}`); + } } } }; @@ -655,6 +653,10 @@ export default class EntryFormAbility extends FormExtensionAbility { ```ts import FormExtension from '@ohos.app.form.FormExtensionAbility'; + import hilog from '@ohos.hilog'; + + const TAG: string = 'FormAbility'; + const DOMAIN_NUMBER: number = 0xFF00; export default class FormAbility extends FormExtension { onFormEvent(formId: string, message: string): void { diff --git a/zh-cn/application-dev/reference/apis/Readme-CN.md b/zh-cn/application-dev/reference/apis/Readme-CN.md index 7c6a5358b98..e976db11503 100644 --- a/zh-cn/application-dev/reference/apis/Readme-CN.md +++ b/zh-cn/application-dev/reference/apis/Readme-CN.md @@ -250,6 +250,7 @@ - [@ohos.router (页面路由)](js-apis-router.md) - [@ohos.uiAppearance (用户界面外观)](js-apis-uiappearance.md) - [getContext](js-apis-context-stage-getContext.md) + - [postCardAction](js-apis-postCardAction.md) - arkui - [BuilderNode](./js-apis-arkui-builderNode.md) - [FrameNode](./js-apis-arkui-frameNode.md) diff --git a/zh-cn/application-dev/reference/apis/js-apis-postCardAction.md b/zh-cn/application-dev/reference/apis/js-apis-postCardAction.md new file mode 100644 index 00000000000..e99aa540fd1 --- /dev/null +++ b/zh-cn/application-dev/reference/apis/js-apis-postCardAction.md @@ -0,0 +1,34 @@ +## postCardAction + +postCardAction(component: Object, action: Object): void + +用于卡片内部和提供方应用间的交互,当前支持router、message和call三种类型的事件,仅在卡片中可以调用 + +> **说明:** +> 本接口从API version 11开始支持。 + +**系统能力:** SystemCapability.ArkUI.ArkUI.Full + +**参数说明:** + + +| **参数名** | **参数类型** | **必填** | **参数描述** | +| -------- | -------- | -------- | -------- | +| component | Object | 是 | 当前自定义组件的实例,通常传入this。 | +| action | Object | 是 | action的具体描述,详情见下表。 | + + +action参数说明: + + +| **Key** | **Value** | **样例描述** | +| -------- | -------- | -------- | +| "action" | string | action的类型,支持三种预定义的类型:
- "router":跳转到提供方应用的指定UIAbility。
- "message":自定义消息,触发后会调用提供方FormExtensionAbility的[onFormEvent()](../reference/apis/js-apis-app-form-formExtensionAbility.md#onformevent)生命周期回调。
- "call":后台启动提供方应用。触发后会拉起提供方应用的指定UIAbility(仅支持launchType为singleton的[UIAbility](uiability-launch-type.md),即启动模式为单实例的UIAbility),但不会调度到前台。提供方应用需要具备后台运行权限([ohos.permission.KEEP_BACKGROUND_RUNNING](../security/AccessToken/permissions-for-all.md#ohospermissionkeep_background_running))。 | +| "bundleName" | string | "action"为"router" / "call" 类型时跳转的包名,可选。 | +| "moduleName" | string | "action"为"router" / "call" 类型时跳转的模块名,可选。 | +| "abilityName" | string | "action"为"router" / "call" 类型时跳转的UIAbility名,必填。 | +| "params" | Object | 当前action携带的额外参数,内容使用JSON格式的键值对形式。必填。 | + +>![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> +>"action"为"call" 类型时,"params"需填入参数'method',且类型需为string类型,用于触发UIAbility中对应的方法。 \ No newline at end of file -- Gitee From a4143212ab149a0dc5e6543717da09c72e88d373 Mon Sep 17 00:00:00 2001 From: duao Date: Tue, 9 Jan 2024 04:45:01 +0000 Subject: [PATCH 02/14] update zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md. Signed-off-by: duao --- .../application-models/arkts-ui-widget-event-uiability.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md b/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md index 6b43111aee9..8a60b994e68 100644 --- a/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md +++ b/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md @@ -111,7 +111,7 @@ let message: string = JSON.stringify(want.parameters.routerDetail); hilog.info(DOMAIN_NUMBER, TAG, `UpdateForm formId: ${curFormId}, message: ${message}`); let formData: Record = { - routerDetail: message + 'onNewWant UIAbility.', // 和卡片布局中对应 + 'routerDetail': message + 'onNewWant UIAbility.', // 和卡片布局中对应 }; let formMsg = formBindingData.createFormBindingData(formData); formProvider.updateForm(want.parameters[formInfo.FormParam.IDENTITY_KEY] + '', formMsg).then((data) => { @@ -147,7 +147,6 @@ ```ts import formBindingData from '@ohos.app.form.formBindingData'; import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; - import formInfo from '@ohos.app.form.formInfo'; import type Want from '@ohos.app.ability.Want'; export default class WidgetCalleeFormAbility extends FormExtensionAbility { -- Gitee From 3568d6d12462e439807ceb92cf47e57f6283607b Mon Sep 17 00:00:00 2001 From: duao Date: Tue, 9 Jan 2024 04:48:12 +0000 Subject: [PATCH 03/14] update zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md. Signed-off-by: duao --- .../application-models/arkts-ui-widget-event-uiability.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md b/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md index 8a60b994e68..8a571db3853 100644 --- a/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md +++ b/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md @@ -271,7 +271,7 @@ let message: string = params.calleeDetail; hilog.info(DOMAIN_NUMBER, TAG, `UpdateForm formId: ${curFormId}, message: ${message}`); let formData: Record = { - calleeDetail: message + 'calleeDetail': message }; let formMsg: formBindingData.FormBindingData = formBindingData.createFormBindingData(formData); formProvider.updateForm(curFormId, formMsg).then((data) => { -- Gitee From 16da640772bdd40aa1b9a3460399b17f6ecbafe2 Mon Sep 17 00:00:00 2001 From: duao Date: Tue, 9 Jan 2024 04:50:46 +0000 Subject: [PATCH 04/14] update zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md. Signed-off-by: duao --- .../application-models/arkts-ui-widget-event-uiability.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md b/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md index 8a571db3853..40b80f4fe5a 100644 --- a/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md +++ b/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md @@ -227,6 +227,7 @@ ```ts import type AbilityConstant from '@ohos.app.ability.AbilityConstant'; + import type Base from '@ohos.base'; import formBindingData from '@ohos.app.form.formBindingData'; import formProvider from '@ohos.app.form.formProvider'; import hilog from '@ohos.hilog'; @@ -276,7 +277,7 @@ let formMsg: formBindingData.FormBindingData = formBindingData.createFormBindingData(formData); formProvider.updateForm(curFormId, formMsg).then((data) => { hilog.info(DOMAIN_NUMBER, TAG, `updateForm success. ${JSON.stringify(data)}`); - }).catch((error) => { + }).catch((error: Base.BusinessError) => { hilog.error(DOMAIN_NUMBER, TAG, `updateForm failed: ${JSON.stringify(error)}`); }); } -- Gitee From 47b379b862896422400c0c82eed6a33cc6371ef7 Mon Sep 17 00:00:00 2001 From: duao Date: Tue, 9 Jan 2024 05:09:20 +0000 Subject: [PATCH 05/14] update zh-cn/application-dev/reference/apis/Readme-CN.md. Signed-off-by: duao --- zh-cn/application-dev/reference/apis/Readme-CN.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/Readme-CN.md b/zh-cn/application-dev/reference/apis/Readme-CN.md index bb127789638..f583d871ca8 100644 --- a/zh-cn/application-dev/reference/apis/Readme-CN.md +++ b/zh-cn/application-dev/reference/apis/Readme-CN.md @@ -249,7 +249,7 @@ - [@ohos.promptAction (弹窗)](js-apis-promptAction.md) - [@ohos.router (页面路由)](js-apis-router.md) - [@ohos.uiAppearance (用户界面外观)](js-apis-uiappearance.md) - - [getContext](js-apis-context-stage-getContext.md) + - [getContext](js-apis-getContext.md) - [postCardAction](js-apis-postCardAction.md) - arkui - [BuilderNode](js-apis-arkui-builderNode.md) -- Gitee From 9c8667fbddb80b255911c14939cb4715c8421138 Mon Sep 17 00:00:00 2001 From: duao Date: Tue, 9 Jan 2024 05:36:54 +0000 Subject: [PATCH 06/14] update zh-cn/application-dev/reference/apis/js-apis-postCardAction.md. Signed-off-by: duao --- zh-cn/application-dev/reference/apis/js-apis-postCardAction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-postCardAction.md b/zh-cn/application-dev/reference/apis/js-apis-postCardAction.md index e99aa540fd1..3d805c0e6b3 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-postCardAction.md +++ b/zh-cn/application-dev/reference/apis/js-apis-postCardAction.md @@ -23,7 +23,7 @@ action参数说明: | **Key** | **Value** | **样例描述** | | -------- | -------- | -------- | -| "action" | string | action的类型,支持三种预定义的类型:
- "router":跳转到提供方应用的指定UIAbility。
- "message":自定义消息,触发后会调用提供方FormExtensionAbility的[onFormEvent()](../reference/apis/js-apis-app-form-formExtensionAbility.md#onformevent)生命周期回调。
- "call":后台启动提供方应用。触发后会拉起提供方应用的指定UIAbility(仅支持launchType为singleton的[UIAbility](uiability-launch-type.md),即启动模式为单实例的UIAbility),但不会调度到前台。提供方应用需要具备后台运行权限([ohos.permission.KEEP_BACKGROUND_RUNNING](../security/AccessToken/permissions-for-all.md#ohospermissionkeep_background_running))。 | +| "action" | string | action的类型,支持三种预定义的类型:
- "router":跳转到提供方应用的指定UIAbility。
- "message":自定义消息,触发后会调用提供方FormExtensionAbility的[onFormEvent()](js-apis-app-form-formExtensionAbility.md#onformevent)生命周期回调。
- "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))。 | | "bundleName" | string | "action"为"router" / "call" 类型时跳转的包名,可选。 | | "moduleName" | string | "action"为"router" / "call" 类型时跳转的模块名,可选。 | | "abilityName" | string | "action"为"router" / "call" 类型时跳转的UIAbility名,必填。 | -- Gitee From 88a2c567ab60399bf405377d09c9ad98040e02cf Mon Sep 17 00:00:00 2001 From: duao Date: Tue, 9 Jan 2024 06:06:58 +0000 Subject: [PATCH 07/14] update zh-cn/application-dev/reference/apis/js-apis-postCardAction.md. Signed-off-by: duao --- zh-cn/application-dev/reference/apis/js-apis-postCardAction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-postCardAction.md b/zh-cn/application-dev/reference/apis/js-apis-postCardAction.md index 3d805c0e6b3..06de3a644f8 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-postCardAction.md +++ b/zh-cn/application-dev/reference/apis/js-apis-postCardAction.md @@ -23,7 +23,7 @@ action参数说明: | **Key** | **Value** | **样例描述** | | -------- | -------- | -------- | -| "action" | string | action的类型,支持三种预定义的类型:
- "router":跳转到提供方应用的指定UIAbility。
- "message":自定义消息,触发后会调用提供方FormExtensionAbility的[onFormEvent()](js-apis-app-form-formExtensionAbility.md#onformevent)生命周期回调。
- "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))。 | +| "action" | string | action的类型,支持三种预定义的类型:
- "router":跳转到提供方应用的指定UIAbility。
- "message":自定义消息,触发后会调用提供方FormExtensionAbility的[onFormEvent()](../apis/js-apis-app-form-formExtensionAbility.md#onformevent)生命周期回调。
- "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))。 | | "bundleName" | string | "action"为"router" / "call" 类型时跳转的包名,可选。 | | "moduleName" | string | "action"为"router" / "call" 类型时跳转的模块名,可选。 | | "abilityName" | string | "action"为"router" / "call" 类型时跳转的UIAbility名,必填。 | -- Gitee From 5c9f55944b74c6c6f75b68354a5491cc8a5c42a9 Mon Sep 17 00:00:00 2001 From: duao Date: Tue, 9 Jan 2024 06:36:04 +0000 Subject: [PATCH 08/14] update zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md. Signed-off-by: duao --- .../application-models/arkts-ui-widget-event-uiability.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md b/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md index 40b80f4fe5a..ca96ab30b78 100644 --- a/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md +++ b/zh-cn/application-dev/application-models/arkts-ui-widget-event-uiability.md @@ -1,7 +1,7 @@ # 通过router或call事件刷新卡片内容 -在卡片页面中可以通过[postCardAction()](../reference/apis/js-apis-postCardAction.md#postCardAction)接口触发router事件或者call事件拉起UIAbility,然后由UIAbility刷新卡片内容,下面是这种刷新方式的简单示例。 +在卡片页面中可以通过[postCardAction()](../reference/apis/js-apis-postCardAction.md#postcardaction)接口触发router事件或者call事件拉起UIAbility,然后由UIAbility刷新卡片内容,下面是这种刷新方式的简单示例。 > **说明:** > @@ -9,7 +9,7 @@ ## 通过router事件刷新卡片内容 -- 在卡片页面通过注册Button的onClick点击事件回调,并在回调中调用[postCardAction()](../reference/apis/js-apis-postCardAction.md#postCardAction)接口触发router事件拉起UIAbility。 +- 在卡片页面通过注册Button的onClick点击事件回调,并在回调中调用[postCardAction()](../reference/apis/js-apis-postCardAction.md#postcardaction)接口触发router事件拉起UIAbility。 ```ts let storageUpdateRouter = new LocalStorage(); -- Gitee From 65434fb6937f095e0e9d8ff1d4726acffb6a1e3e Mon Sep 17 00:00:00 2001 From: duao Date: Tue, 9 Jan 2024 06:36:57 +0000 Subject: [PATCH 09/14] update zh-cn/application-dev/application-models/arkts-ui-widget-event-overview.md. Signed-off-by: duao --- .../application-models/arkts-ui-widget-event-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/application-models/arkts-ui-widget-event-overview.md b/zh-cn/application-dev/application-models/arkts-ui-widget-event-overview.md index 56b4ddb1ba4..401b86a90bb 100644 --- a/zh-cn/application-dev/application-models/arkts-ui-widget-event-overview.md +++ b/zh-cn/application-dev/application-models/arkts-ui-widget-event-overview.md @@ -1,6 +1,6 @@ # 卡片事件能力说明 -针对动态卡片,ArkTS卡片中提供了[postCardAction()](../reference/apis/js-apis-postCardAction.md#postCardAction)接口用于卡片内部和提供方应用间的交互,当前支持router、message和call三种类型的事件,仅在卡片中可以调用。 +针对动态卡片,ArkTS卡片中提供了[postCardAction()](../reference/apis/js-apis-postCardAction.md#postcardaction)接口用于卡片内部和提供方应用间的交互,当前支持router、message和call三种类型的事件,仅在卡片中可以调用。
针对静态卡片,ArkTS卡片提供了[FormLink](../reference/arkui-ts/ts-container-formlink.md)用于卡片内部和提供方应用间的交互。 ## 动态卡片事件能力说明 -- Gitee From cac2b9f109d962438586c74a786234e0b5a59bfd Mon Sep 17 00:00:00 2001 From: duao Date: Tue, 9 Jan 2024 09:20:57 +0000 Subject: [PATCH 10/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: duao --- .../arkts-ui-widget-event-overview.md | 36 ++----------- .../js-ui-widget-development.md | 6 +-- .../reference/apis/js-apis-postCardAction.md | 53 +++++++++++++++---- 3 files changed, 50 insertions(+), 45 deletions(-) diff --git a/zh-cn/application-dev/application-models/arkts-ui-widget-event-overview.md b/zh-cn/application-dev/application-models/arkts-ui-widget-event-overview.md index 401b86a90bb..75efe15c0a2 100644 --- a/zh-cn/application-dev/application-models/arkts-ui-widget-event-overview.md +++ b/zh-cn/application-dev/application-models/arkts-ui-widget-event-overview.md @@ -6,38 +6,10 @@ ## 动态卡片事件能力说明 ![WidgetPostCardAction](figures/WidgetPostCardAction.png) -`postCardAction()`接口示例代码: - -```ts -Button('跳转') - .width('40%') - .height('20%') - .onClick(() => { - postCardAction(this, { - action: 'router', - bundleName: 'com.example.myapplication', - abilityName: 'EntryAbility', - params: { - message: 'testForRouter' // 自定义要发送的message - } - }); - }) - -Button('拉至后台') - .width('40%') - .height('20%') - .onClick(() => { - postCardAction(this, { - action: 'call', - bundleName: 'com.example.myapplication', - abilityName: 'EntryAbility', - params: { - method: 'fun', // 自定义调用的方法名,必填 - message: 'testForCall' // 自定义要发送的message - } - }); - }) -``` +动态卡片事件包括三种类型: +- [使用router事件跳转到指定UIAbility](arkts-ui-widget-event-router.md) +- [使用call事件拉起指定UIAbility到后台](arkts-ui-widget-event-call.md) +- [通过message事件刷新卡片内容](arkts-ui-widget-event-formextensionability.md) ## 静态卡片事件能力说明 请参见[FormLink](../reference/arkui-ts/ts-container-formlink.md) diff --git a/zh-cn/application-dev/application-models/js-ui-widget-development.md b/zh-cn/application-dev/application-models/js-ui-widget-development.md index 478da384c03..3f7cfb943cb 100644 --- a/zh-cn/application-dev/application-models/js-ui-widget-development.md +++ b/zh-cn/application-dev/application-models/js-ui-widget-development.md @@ -635,12 +635,12 @@ export default class EntryFormAbility extends FormExtensionAbility { let params: Record = JSON.parse(JSON.stringify(want.parameters.params)); // 获取router事件中传递的info参数 if (params.info === 'router info') { - // do something + // 执行业务逻辑 hilog.info(DOMAIN_NUMBER, TAG, `router info: ${params.info}`); } // 获取router事件中传递的message参数 if (params.message === 'router message') { - // do something + // 执行业务逻辑 hilog.info(DOMAIN_NUMBER, TAG, `router message: ${params.message}`); } } @@ -665,7 +665,7 @@ export default class EntryFormAbility extends FormExtensionAbility { // 获取message事件中传递的detail参数 let msg: Record = JSON.parse(message); if (msg.detail === 'message detail') { - // do something + // 执行业务逻辑 hilog.info(DOMAIN_NUMBER, TAG, 'message info:' + msg.detail); } } diff --git a/zh-cn/application-dev/reference/apis/js-apis-postCardAction.md b/zh-cn/application-dev/reference/apis/js-apis-postCardAction.md index 06de3a644f8..31774f7e929 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-postCardAction.md +++ b/zh-cn/application-dev/reference/apis/js-apis-postCardAction.md @@ -2,17 +2,17 @@ postCardAction(component: Object, action: Object): void -用于卡片内部和提供方应用间的交互,当前支持router、message和call三种类型的事件,仅在卡片中可以调用 +用于卡片内部和提供方应用间的交互,当前支持router、message和call三种类型的事件,仅在卡片中可以调用。 > **说明:** > 本接口从API version 11开始支持。 **系统能力:** SystemCapability.ArkUI.ArkUI.Full -**参数说明:** +**参数:** -| **参数名** | **参数类型** | **必填** | **参数描述** | +| **参数名** | **类型** | **必填** | **说明** | | -------- | -------- | -------- | -------- | | component | Object | 是 | 当前自定义组件的实例,通常传入this。 | | action | Object | 是 | action的具体描述,详情见下表。 | @@ -21,14 +21,47 @@ postCardAction(component: Object, action: Object): void action参数说明: -| **Key** | **Value** | **样例描述** | +| **参数名** | **类型** | **取值说明** | | -------- | -------- | -------- | -| "action" | string | action的类型,支持三种预定义的类型:
- "router":跳转到提供方应用的指定UIAbility。
- "message":自定义消息,触发后会调用提供方FormExtensionAbility的[onFormEvent()](../apis/js-apis-app-form-formExtensionAbility.md#onformevent)生命周期回调。
- "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))。 | -| "bundleName" | string | "action"为"router" / "call" 类型时跳转的包名,可选。 | -| "moduleName" | string | "action"为"router" / "call" 类型时跳转的模块名,可选。 | -| "abilityName" | string | "action"为"router" / "call" 类型时跳转的UIAbility名,必填。 | -| "params" | Object | 当前action携带的额外参数,内容使用JSON格式的键值对形式。必填。 | +| action | string | action的类型,支持三种预定义的类型:
- router:跳转到提供方应用的指定UIAbility。
- message:自定义消息,触发后会调用提供方FormExtensionAbility的[onFormEvent()](../apis/js-apis-app-form-formExtensionAbility.md#onformevent)生命周期回调。
- 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))。 | +| bundleName | string | action为router / call 类型时跳转的包名,可选。 | +| moduleName | string | action为router / call" 类型时跳转的模块名,可选。 | +| abilityName | string | action为router / call 类型时跳转的UIAbility名,必填。 | +| params | Object | 当前action携带的额外参数,内容使用JSON格式的键值对形式。必填。 | >![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ->"action"为"call" 类型时,"params"需填入参数'method',且类型需为string类型,用于触发UIAbility中对应的方法。 \ No newline at end of file +>"action"为"call" 类型时,"params"需填入参数'method',且类型需为string类型,用于触发UIAbility中对应的方法。 + +**示例:** + +```ts +Button('跳转') + .width('40%') + .height('20%') + .onClick(() => { + postCardAction(this, { + action: 'router', + bundleName: 'com.example.myapplication', + abilityName: 'EntryAbility', + params: { + message: 'testForRouter' // 自定义要发送的message + } + }); + }) + +Button('拉至后台') + .width('40%') + .height('20%') + .onClick(() => { + postCardAction(this, { + action: 'call', + bundleName: 'com.example.myapplication', + abilityName: 'EntryAbility', + params: { + method: 'fun', // 自定义调用的方法名,必填 + message: 'testForCall' // 自定义要发送的message + } + }); + }) +``` -- Gitee From f707a822bb1e985d32eea395b8a5f0cd8c750dab Mon Sep 17 00:00:00 2001 From: duao Date: Tue, 9 Jan 2024 10:01:38 +0000 Subject: [PATCH 11/14] update zh-cn/application-dev/application-models/arkts-ui-widget-image-update.md. Signed-off-by: duao --- .../application-models/arkts-ui-widget-image-update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/application-models/arkts-ui-widget-image-update.md b/zh-cn/application-dev/application-models/arkts-ui-widget-image-update.md index 2bb9b5672bd..36627453004 100644 --- a/zh-cn/application-dev/application-models/arkts-ui-widget-image-update.md +++ b/zh-cn/application-dev/application-models/arkts-ui-widget-image-update.md @@ -90,7 +90,7 @@ fileInfo[fileName] = file.fd; } catch (e) { console.error(`openSync failed: ${JSON.stringify(e as Base.BusinessError)}`); - }; + } class FormDataClass { text: string = 'Image: Bear' + fileName; -- Gitee From 2423d062a3768bfa859e8095fb774f38c060e035 Mon Sep 17 00:00:00 2001 From: duao Date: Tue, 9 Jan 2024 11:13:57 +0000 Subject: [PATCH 12/14] update zh-cn/application-dev/application-models/arkts-ui-widget-update-by-proxy.md. Signed-off-by: duao --- .../application-models/arkts-ui-widget-update-by-proxy.md | 1 - 1 file changed, 1 deletion(-) diff --git a/zh-cn/application-dev/application-models/arkts-ui-widget-update-by-proxy.md b/zh-cn/application-dev/application-models/arkts-ui-widget-update-by-proxy.md index 678b4d9cd03..5f3524e18a8 100644 --- a/zh-cn/application-dev/application-models/arkts-ui-widget-update-by-proxy.md +++ b/zh-cn/application-dev/application-models/arkts-ui-widget-update-by-proxy.md @@ -170,7 +170,6 @@ import dataShare from '@ohos.data.dataShare'; import type formBindingData from '@ohos.app.form.formBindingData'; import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; - import formInfo from '@ohos.app.form.formInfo'; import type Want from '@ohos.app.ability.Want'; export default class PersistentDataFormAbility extends FormExtensionAbility { -- Gitee From 866d60c072da86ac9ad19f21bfb3f4912581d432 Mon Sep 17 00:00:00 2001 From: duao Date: Tue, 9 Jan 2024 11:59:24 +0000 Subject: [PATCH 13/14] update zh-cn/application-dev/application-models/arkts-ui-widget-event-overview.md. Signed-off-by: duao --- .../application-models/arkts-ui-widget-event-overview.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/zh-cn/application-dev/application-models/arkts-ui-widget-event-overview.md b/zh-cn/application-dev/application-models/arkts-ui-widget-event-overview.md index 75efe15c0a2..6111af5bfb3 100644 --- a/zh-cn/application-dev/application-models/arkts-ui-widget-event-overview.md +++ b/zh-cn/application-dev/application-models/arkts-ui-widget-event-overview.md @@ -6,10 +6,10 @@ ## 动态卡片事件能力说明 ![WidgetPostCardAction](figures/WidgetPostCardAction.png) -动态卡片事件包括三种类型: -- [使用router事件跳转到指定UIAbility](arkts-ui-widget-event-router.md) -- [使用call事件拉起指定UIAbility到后台](arkts-ui-widget-event-call.md) -- [通过message事件刷新卡片内容](arkts-ui-widget-event-formextensionability.md) +动态卡片事件的主要使用场景如下: +- router事件:可以使用router事件跳转到指定UIAbility,并通过router事件刷新卡片内容。 +- call事件:可以使用call事件拉起指定UIAbility到后台,并通过call事件刷新卡片内容。 +- message事件:可以使用message拉起FormExtensionAbility,并通过FormExtensionAbility刷新卡片内容。 ## 静态卡片事件能力说明 请参见[FormLink](../reference/arkui-ts/ts-container-formlink.md) -- Gitee From 86b6d2386b1bba8603aff5f43c13cd7ba7c42ef2 Mon Sep 17 00:00:00 2001 From: duao Date: Tue, 9 Jan 2024 12:03:30 +0000 Subject: [PATCH 14/14] update zh-cn/application-dev/reference/apis/js-apis-postCardAction.md. Signed-off-by: duao --- zh-cn/application-dev/reference/apis/js-apis-postCardAction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-postCardAction.md b/zh-cn/application-dev/reference/apis/js-apis-postCardAction.md index 31774f7e929..cac9b94a364 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-postCardAction.md +++ b/zh-cn/application-dev/reference/apis/js-apis-postCardAction.md @@ -5,7 +5,7 @@ postCardAction(component: Object, action: Object): void 用于卡片内部和提供方应用间的交互,当前支持router、message和call三种类型的事件,仅在卡片中可以调用。 > **说明:** -> 本接口从API version 11开始支持。 +> 本接口从API version 9开始支持。 **系统能力:** SystemCapability.ArkUI.ArkUI.Full -- Gitee