ArkTS Api详解(FormExtensionAbility)

44 阅读1分钟

@ohos.app.form.FormExtensionAbility

FormExtensionAbility为卡片扩展模块,提供卡片创建、销毁、刷新等生命周期回调。

onAddForm

卡片提供方接收创建卡片的通知接口。

import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';
import formBindingData from'@ohos.app.form.formBindingData';

export default class MyFormExtensionAbility extends FormExtensionAbility {
  onAddForm(want) {
    console.log('FormExtensionAbility onAddForm, want:' + want.abilityName);
    let dataObj1 = {
      temperature:'11c',
      'time':'11:00'
    };
    let obj1 = formBindingData.createFormBindingData(dataObj1);
    return obj1;
  }
}

onCastToNormalForm

卡片提供方接收临时卡片转常态卡片的通知接口。

export default class MyFormExtensionAbility extends FormExtensionAbility {
  onCastToNormalForm(formId) {
    console.log('FormExtensionAbility onCastToNormalForm, formId:' + formId);
  }
}

onUpdateForm

卡片提供方接收更新卡片的通知接口。获取最新数据后调用formProvider的updateForm接口刷新卡片数据。

import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';
import formBindingData from '@ohos.app.form.formBindingData';
import formProvider from '@ohos.app.form.formProvider';

export default class MyFormExtensionAbility extends FormExtensionAbility {
  onUpdateForm(formId) {
    console.log('FormExtensionAbility onUpdateForm, formId: ${formId}');
    let obj2 = formBindingData.createFormBindingData({
      temperature: '22c',
      time: '22:00'
    });
    formProvider.updateForm(formId, obj2).then((data) => {
      console.log('FormExtensionAbility context updateForm, data: ${data}');
    }).catch((error) => {
      console.error('Operation updateForm failed. Cause: ${error}');
    });
  }
};

onChangeFormVisibility

卡片提供方接收修改可见性的通知接口。

import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';
import formBindingData from '@ohos.app.form.formBindingData';
import formProvider from '@ohos.app.form.formProvider';

export default class MyFormExtensionAbility extends FormExtensionAbility {
  onChangeFormVisibility(newStatus) {
    console.log('FormExtensionAbility onChangeFormVisibility, newStatus: ${newStatus}');
    let obj2 = formBindingData.createFormBindingData({
      temperature: '22c',
      time: '22:00'
    });

    for (let key in newStatus) {
      console.log('FormExtensionAbility onChangeFormVisibility, key: ${key}, value= ${newStatus[key]}');
      formProvider.updateForm(key, obj2).then((data) => {
        console.log('FormExtensionAbility context updateForm, data: ${data}');
      }).catch((error) => {
        console.error('Operation updateForm failed. Cause: ${error}');
      });
    }
  }
};

onFormEvent

卡片提供方接收处理卡片事件的通知接口。

export default class MyFormExtension extends FormExtensionAbility {
  onFormEvent(formId, message) {
    console.log('FormExtensionAbility onFormEvent, formId:' + formId + ', message:' + message);
  }
}

onRemoveForm

卡片提供方接收销毁卡片的通知接口。

export default class MyFormExtensionAbility extends FormExtensionAbility {
  onRemoveForm(formId) {
    console.log('FormExtensionAbility onRemoveForm, formId:' + formId);
  }
}

onConfigurationUpdate

当系统配置更新时调用。

class MyFormExtensionAbility extends FormExtensionAbility {
  onConfigurationUpdate(config) {
    console.log('onConfigurationUpdate, config:' + JSON.stringify(config));
  }
}

onAcquireFormState

卡片提供方接收查询卡片状态通知接口。默认返回卡片初始状态。

import formInfo from '@ohos.app.form.formInfo';
class MyFormExtensionAbility extends FormExtensionAbility {
  onAcquireFormState(want) {
    console.log('FormExtensionAbility onAcquireFormState, want:' + want);
    return formInfo.FormState.UNKNOWN;
  }
}