From c4397979c91be4c29f2859feae4706b7cce9854a Mon Sep 17 00:00:00 2001 From: "@feng-yu4279" Date: Tue, 27 May 2025 16:29:47 +0800 Subject: [PATCH] =?UTF-8?q?feat=20(=E6=A0=87=E8=AF=86):=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20CardInfoRefresh=20=E4=BB=93=E5=BA=93=E6=A0=87?= =?UTF-8?q?=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/ets/entryability/EntryAbility.ets | 44 ++++++++++----- .../ets/entryformability/EntryFormAbility.ets | 53 ++++++++++++++++--- entry/src/main/ets/pages/Index.ets | 4 +- .../src/main/ets/widget/pages/WidgetCard.ets | 22 +++++--- 4 files changed, 91 insertions(+), 32 deletions(-) diff --git a/entry/src/main/ets/entryability/EntryAbility.ets b/entry/src/main/ets/entryability/EntryAbility.ets index f5743ef..283f84e 100644 --- a/entry/src/main/ets/entryability/EntryAbility.ets +++ b/entry/src/main/ets/entryability/EntryAbility.ets @@ -12,21 +12,25 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +// [Start ability_constant] // [Start entry_ability] import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { formBindingData, formInfo, formProvider } from '@kit.FormKit'; import { rpc } from '@kit.IPCKit'; import { CardListItemData, CommonData, FormData } from '../common/CommonData'; +// [StartExclude ability_constant] // [StartExclude entry_ability] import { window } from '@kit.ArkUI'; import { BusinessError } from '@kit.BasicServicesKit'; import { PreferencesUtil } from '../common/utils/PreferencesUtil'; import { CommonConstants } from '../common/CommonConstants'; // [EndExclude entry_ability] +// [EndExclude ability_constant] const TAG: string = 'EntryAbility'; export default class EntryAbility extends UIAbility { + // [StartExclude ability_constant] private callFunc = (data: rpc.MessageSequence): MyParcelable => { let params: Record = JSON.parse(data.readString()); if (params.formId !== undefined) { @@ -48,7 +52,7 @@ export default class EntryAbility extends UIAbility { } return new MyParcelable(1); }; - // [StartExclude call_update_func] + // [StartExclude entry_ability] private callUpdateFunc = (data: rpc.MessageSequence): MyParcelable => { let params: Record = JSON.parse(data.readString()); if (params.formId !== undefined) { @@ -89,19 +93,25 @@ export default class EntryAbility extends UIAbility { } return new MyParcelable(1); }; - // [EndExclude call_update_func] + // [EndExclude entry_ability] + // [EndExclude ability_constant] onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { - // [StartExclude init_data] + // [StartExclude ability_constant] + // [StartExclude entry_ability] hilog.info(0x0000, TAG, '%{public}s', 'Ability onCreate'); this.initData(); + // [EndExclude ability_constant] this.updateInfo(want); - // [EndExclude init_data] + // [StartExclude ability_constant] + // [EndExclude entry_ability] this.callee.on('updateCardInfo', this.callFunc); - // [StartExclude callee] + // [StartExclude entry_ability] this.callee.on('updateFormFavour', this.callUpdateFunc); - // [EndExclude callee] + // [EndExclude entry_ability] + // [EndExclude ability_constant] } - // [StartExclude preferences_util] + // [StartExclude entry_ability] + // [StartExclude ability_constant] initData(): void { let util = PreferencesUtil.getInstance(); let preferences = util.getPreferences(this.context); @@ -136,6 +146,7 @@ export default class EntryAbility extends UIAbility { }) } + // [EndExclude ability_constant] onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void { this.updateInfo(want); } @@ -148,11 +159,13 @@ export default class EntryAbility extends UIAbility { if (message === 'Router refresh card.') { let formId = want.parameters[formInfo.FormParam.IDENTITY_KEY].toString(); let formData = new FormData(formId); + // [StartExclude ability_constant] let util = PreferencesUtil.getInstance(); let preferences = util.getPreferences(this.context); let index: number = preferences.getSync(CommonConstants.DATA_INDEX, 0) as number; formData.cardList = CommonData.getData(index); util.preferencesPut(preferences, CommonConstants.DATA_INDEX, index + 1); + // [EndExclude ability_constant] let formMsg: formBindingData.FormBindingData = formBindingData.createFormBindingData(formData); formProvider.updateForm(formId, formMsg) .then((data) => { @@ -163,21 +176,22 @@ export default class EntryAbility extends UIAbility { }); } } - // [EndExclude preferences_util] + // [EndExclude entry_ability] + // [StartExclude ability_constant] onDestroy(): void { - // [StartExclude hilog] + // [StartExclude entry_ability] hilog.info(0x0000, TAG, '%{public}s', 'Ability onDestroy'); - // [EndExclude hilog] + // [EndExclude entry_ability] try { this.callee.off('updateCardInfo'); - // [StartExclude off] + // [StartExclude entry_ability] this.callee.off('updateFormFavour'); - // [EndExclude off] + // [EndExclude entry_ability] } catch (err) { hilog.error(0x0000, TAG, 'Failed to disconnect callee. Cause: %{public}s', JSON.stringify(err) ?? ''); } } - // [StartExclude on_window_stage_create] + // [StartExclude entry_ability] onWindowStageCreate(windowStage: window.WindowStage): void { // Main window is created, set main page for this ability hilog.info(0x0000, TAG, '%{public}s', 'Ability onWindowStageCreate'); @@ -215,8 +229,10 @@ export default class EntryAbility extends UIAbility { // Ability has back to background hilog.info(0x0000, TAG, '%{public}s', 'Ability onBackground'); } - // [EndExclude on_window_stage_create] + // [EndExclude entry_ability] + // [EndExclude ability_constant] } +// [End ability_constant] class MyParcelable implements rpc.Parcelable { num: number; diff --git a/entry/src/main/ets/entryformability/EntryFormAbility.ets b/entry/src/main/ets/entryformability/EntryFormAbility.ets index 5d74486..39dd6f0 100644 --- a/entry/src/main/ets/entryformability/EntryFormAbility.ets +++ b/entry/src/main/ets/entryformability/EntryFormAbility.ets @@ -13,19 +13,31 @@ * limitations under the License. */ +// [Start system_date_time] import { systemDateTime } from '@kit.BasicServicesKit'; // [Start entry_form_ability] +// [Start want] import { Want } from '@kit.AbilityKit'; +// [Start form_binding_data] +// [Start form_info] import { formBindingData, FormExtensionAbility, formInfo, formProvider } from '@kit.FormKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; -// [StartExclude card_list_item_data] +// [StartExclude entry_form_ability] import { CardListItemData, CommonData, FormData } from '../common/CommonData'; +// [StartExclude form_info] +// [StartExclude form_binding_data] +// [StartExclude system_date_time] import { CommonConstants } from '../common/CommonConstants'; import { PreferencesUtil } from '../common/utils/PreferencesUtil'; -// [EndExclude card_list_item_data] +// [EndExclude entry_form_ability] +// [EndExclude form_binding_data] const TAG: string = 'EntryFormAbility'; +// [EndExclude system_date_time] +// [EndExclude form_info] export default class EntryFormAbility extends FormExtensionAbility { + // [StartExclude form_binding_data] + // [StartExclude form_info] onAddForm(want: Want): formBindingData.FormBindingData { if(!want || !want.parameters) { hilog.error(0x0000, TAG, `FormAbility onAddForm want or want.parameters is undefined`); @@ -34,12 +46,15 @@ export default class EntryFormAbility extends FormExtensionAbility { let formName: string = want.parameters[formInfo.FormParam.NAME_KEY] as string; let formId: string = want.parameters[formInfo.FormParam.IDENTITY_KEY] as string; - // [StartExclude card_info_update] + // [StartExclude system_date_time] + // [StartExclude entry_form_ability] let util = PreferencesUtil.getInstance(); let preferences = util.getPreferences(this.context); // Save form id using preferences. util.addFormId(preferences, formId); + // [StartExclude want] + // [EndExclude system_date_time] if (formName === 'card_info_refresh') { let formData = new FormData(formId); formData.formTime = systemDateTime.getTime().toString(); @@ -47,6 +62,7 @@ export default class EntryFormAbility extends FormExtensionAbility { return formInfo; } + // [EndExclude want] let key: string = `${formId}_show_index`; let data = util.getFormInitData(key, preferences); if (formName === 'card_info_update') { @@ -57,14 +73,20 @@ export default class EntryFormAbility extends FormExtensionAbility { let formInfo: formBindingData.FormBindingData = formBindingData.createFormBindingData(formData); return formInfo; } - // [EndExclude card_info_update] + // [EndExclude entry_form_ability] return formBindingData.createFormBindingData(''); } - // [StartExclude on_update_form] + // [StartExclude want] + // [StartExclude entry_form_ability] + // [StartExclude system_date_time] + // [EndExclude form_info] onUpdateForm(formId: string) { + // [StartExclude form_info] // Called to notify the form provider to update a specified form. hilog.info(0x0000, TAG, `FormAbility onUpdateForm, formId = ${formId}`); + // [EndExclude form_info] let formData = new FormData(formId); + // [StartExclude form_info] formData.formTime = systemDateTime.getTime().toString(); let util = PreferencesUtil.getInstance(); @@ -78,19 +100,26 @@ export default class EntryFormAbility extends FormExtensionAbility { util.preferencesPut(preferences, key, newIndex); formData.cardList = [dataItem]; } + // [EndExclude form_info] let formMsg: formBindingData.FormBindingData = formBindingData.createFormBindingData(formData); formProvider.updateForm(formId, formMsg); } + // [StartExclude form_info] + // [EndExclude form_binding_data] onFormEvent(formId: string, message: string) { + // [StartExclude form_binding_data] // Called when a specified message event defined by the form provider is triggered. hilog.info(0x0000, TAG, `FormAbility onFormEvent, formId = ${formId}, message: ${JSON.stringify(message)}`); + // [EndExclude form_binding_data] let formData = new FormData(formId); + // [StartExclude form_binding_data] let util = PreferencesUtil.getInstance(); let preferences = util.getPreferences(this.context); let index: number = preferences.getSync(CommonConstants.DATA_INDEX, 0) as number; formData.cardList = CommonData.getData(index); util.preferencesPut(preferences, CommonConstants.DATA_INDEX, index + 1); + // [EndExclude form_binding_data] let formMsg: formBindingData.FormBindingData = formBindingData.createFormBindingData(formData); formProvider.updateForm(formId, formMsg).then(() => { hilog.info(0x0000, TAG, 'updateForm success.'); @@ -98,7 +127,7 @@ export default class EntryFormAbility extends FormExtensionAbility { hilog.error(0x0000, TAG, 'updateForm failed.%s', JSON.stringify(error)); }); } - + // [StartExclude form_binding_data] onAcquireFormState(want: Want) { // Called to return a {@link FormState} object. return formInfo.FormState.READY; @@ -108,6 +137,14 @@ export default class EntryFormAbility extends FormExtensionAbility { hilog.info(0x00, TAG, `remove formId: ${formId}`); PreferencesUtil.getInstance().removeFormId(this.context, formId); } - // [EndExclude on_update_form] + // [EndExclude entry_form_ability] + // [EndExclude system_date_time] + // [EndExclude form_binding_data] + // [EndExclude want] + // [EndExclude form_info] } -// [End entry_form_ability] \ No newline at end of file +// [End entry_form_ability] +// [End system_date_time] +// [End form_binding_data] +// [End want] +// [End form_info] \ No newline at end of file diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index c2eac4f..7cfb9a5 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -86,7 +86,7 @@ struct DataItemView { .alignItems(HorizontalAlign.Start) .justifyContent(FlexAlign.Center) .layoutWeight(1) - // [Start row] + // [Start status_arr] Row() { // [StartExclude status_arr] if (!this.statusArr[this.itemData.id!]) { @@ -127,7 +127,7 @@ struct DataItemView { }) } }) - // [End row] + // [End status_arr] } .alignItems(VerticalAlign.Top) .width('100%') diff --git a/entry/src/main/ets/widget/pages/WidgetCard.ets b/entry/src/main/ets/widget/pages/WidgetCard.ets index 8ec41e2..4ee5179 100644 --- a/entry/src/main/ets/widget/pages/WidgetCard.ets +++ b/entry/src/main/ets/widget/pages/WidgetCard.ets @@ -46,15 +46,15 @@ struct WidgetCard { // [EndExclude widget_card] @LocalStorageProp('formTime') @Watch('onFormTimeChange') formTime: string = ''; @LocalStorageProp('formId') formId: string = ''; - // [StartExclude card_list] + // [StartExclude widget_card] @LocalStorageProp('cardList') cardList: Array = []; @State cardListParameter: CardListParameter = new CardListParameter($r('sys.color.ohos_id_color_background'), $r('app.string.card_list_title'), '', ImageSize.Cover, $r('app.media.logo'), false, $r('sys.color.ohos_id_color_background'), true, this.cardList.length, $r('sys.color.ohos_id_color_emphasize'), $r('app.color.list_item_count_background'), '', false); - // [EndExclude card_list] + // [EndExclude widget_card] onFormTimeChange() { - // [StartExclude post_card_action] + // [StartExclude widget_card] postCardAction(this, { action: 'call', abilityName: 'EntryAbility', @@ -64,9 +64,9 @@ struct WidgetCard { message: 'Call refresh card.' } }); - // [EndExclude post_card_action] + // [EndExclude widget_card] } - // [StartExclude button_builder] + // [StartExclude widget_card] @Builder buttonBuilder(text: ResourceStr) { Column() { @@ -134,6 +134,7 @@ struct WidgetCard { } Row() { + // [Start button_builder2] Row(){ this.buttonBuilder($r('app.string.router')) } @@ -146,7 +147,9 @@ struct WidgetCard { } }); }) + // [End button_builder2] + // [Start button_builder1] Row() { this.buttonBuilder($r('app.string.call')) } @@ -163,7 +166,9 @@ struct WidgetCard { } }); }) + // [End buttonBuilder] + // [Start button_builder] Row() { this.buttonBuilder($r('app.string.message')) } @@ -175,6 +180,7 @@ struct WidgetCard { } }); }) + // [Start button_builder] } .width(this.FULL_WIDTH_PERCENT) .justifyContent(FlexAlign.SpaceBetween) @@ -183,9 +189,9 @@ struct WidgetCard { .justifyContent(FlexAlign.SpaceBetween) } } - // [EndExclude button_builder] + // [EndExclude widget_card] build() { - // [StartExclude card_list_component] + // [StartExclude widget_card] Row() { CardListComponent({ cardListParameter: this.cardListParameter }) { this.cardListBuilder() @@ -201,7 +207,7 @@ struct WidgetCard { } }); }) - // [EndExclude card_list_component] + // [EndExclude widget_card] } } // [End widget_card] \ No newline at end of file -- Gitee