通過(guò)message事件刷新卡片內(nèi)容

2024-01-25 12:21 更新

在卡片頁(yè)面中可以通過(guò)postCardAction接口觸發(fā)message事件拉起FormExtensionAbility,然后由FormExtensionAbility刷新卡片內(nèi)容,下面是這種刷新方式的簡(jiǎn)單示例。

  • 在卡片頁(yè)面通過(guò)注冊(cè)Button的onClick點(diǎn)擊事件回調(diào),并在回調(diào)中調(diào)用postCardAction接口觸發(fā)message事件拉起FormExtensionAbility。
    1. let storage = new LocalStorage();
    2. @Entry(storage)
    3. @Component
    4. struct WidgetCard {
    5. @LocalStorageProp('title') title: string = 'init';
    6. @LocalStorageProp('detail') detail: string = 'init';
    7. build() {
    8. Column() {
    9. Button('刷新')
    10. .onClick(() => {
    11. postCardAction(this, {
    12. 'action': 'message',
    13. 'params': {
    14. 'msgTest': 'messageEvent'
    15. }
    16. });
    17. })
    18. Text(`${this.title}`)
    19. Text(`${this.detail}`)
    20. }
    21. .width('100%')
    22. .height('100%')
    23. }
    24. }
  • 在FormExtensionAbility的onFormEvent生命周期中調(diào)用updateForm接口刷新卡片。
    1. import formBindingData from '@ohos.app.form.formBindingData';
    2. import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';
    3. import formProvider from '@ohos.app.form.formProvider';
    4. export default class EntryFormAbility extends FormExtensionAbility {
    5. onFormEvent(formId, message) {
    6. // Called when a specified message event defined by the form provider is triggered.
    7. console.info(`FormAbility onEvent, formId = ${formId}, message: ${JSON.stringify(message)}`);
    8. let formData = {
    9. 'title': 'Title Update Success.', // 和卡片布局中對(duì)應(yīng)
    10. 'detail': 'Detail Update Success.', // 和卡片布局中對(duì)應(yīng)
    11. };
    12. let formInfo = formBindingData.createFormBindingData(formData)
    13. formProvider.updateForm(formId, formInfo).then((data) => {
    14. console.info('FormAbility updateForm success.' + JSON.stringify(data));
    15. }).catch((error) => {
    16. console.error('FormAbility updateForm failed: ' + JSON.stringify(error));
    17. })
    18. }
    19. ...
    20. }

    運(yùn)行效果如下圖所示。

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)