提供卡片创建、销毁、刷新等生命周期回调

2024-01-22 18:58 更新

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

说明

本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

本模块接口仅可在Stage模型下使用。

导入模块

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

属性

系统能力:SystemCapability.Ability.Form

名称

类型

可读

可写

说明

context

FormExtensionContext

FormExtensionAbility的上下文环境,继承自ExtensionContext

onAddForm

onAddForm(want: Want): formBindingData.FormBindingData

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

系统能力:SystemCapability.Ability.Form

参数:

参数名

类型

必填

说明

want

Want

当前ExtensionAbility相关的Want类型信息,包括卡片ID、卡片名称、卡片样式等。这些卡片信息必须作为持久数据进行管理,以便后续更新和删除卡片。

返回值:

类型

说明

formBindingData.FormBindingData

formBindingData.FormBindingData对象,卡片要显示的数据。

示例:

  1. import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';
  2. import formBindingData from'@ohos.app.form.formBindingData';
  3. export default class MyFormExtensionAbility extends FormExtensionAbility {
  4. onAddForm(want) {
  5. console.log('FormExtensionAbility onAddForm, want:' + want.abilityName);
  6. let dataObj1 = {
  7. temperature:'11c',
  8. 'time':'11:00'
  9. };
  10. let obj1 = formBindingData.createFormBindingData(dataObj1);
  11. return obj1;
  12. }
  13. }

onCastToNormalForm

onCastToNormalForm(formId: string): void

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

系统能力:SystemCapability.Ability.Form

参数:

参数名

类型

必填

说明

formId

string

请求转换为常态的卡片标识。

示例:

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

onUpdateForm

onUpdateForm(formId: string): void

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

系统能力:SystemCapability.Ability.Form

参数:

参数名

类型

必填

说明

formId

string

请求更新的卡片ID。

示例:

  1. import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';
  2. import formBindingData from '@ohos.app.form.formBindingData';
  3. import formProvider from '@ohos.app.form.formProvider';
  4. export default class MyFormExtensionAbility extends FormExtensionAbility {
  5. onUpdateForm(formId) {
  6. console.log('FormExtensionAbility onUpdateForm, formId: ${formId}');
  7. let obj2 = formBindingData.createFormBindingData({
  8. temperature: '22c',
  9. time: '22:00'
  10. });
  11. formProvider.updateForm(formId, obj2).then((data) => {
  12. console.log('FormExtensionAbility context updateForm, data: ${data}');
  13. }).catch((error) => {
  14. console.error('Operation updateForm failed. Cause: ${error}');
  15. });
  16. }
  17. };

onChangeFormVisibility

onChangeFormVisibility(newStatus: { [key: string]: number }): void

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

系统能力:SystemCapability.Ability.Form

参数:

参数名

类型

必填

说明

newStatus

{ [key: string]: number }

请求修改的卡片标识和可见状态。

示例:

  1. import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';
  2. import formBindingData from '@ohos.app.form.formBindingData';
  3. import formProvider from '@ohos.app.form.formProvider';
  4. export default class MyFormExtensionAbility extends FormExtensionAbility {
  5. onChangeFormVisibility(newStatus) {
  6. console.log('FormExtensionAbility onChangeFormVisibility, newStatus: ${newStatus}');
  7. let obj2 = formBindingData.createFormBindingData({
  8. temperature: '22c',
  9. time: '22:00'
  10. });
  11. for (let key in newStatus) {
  12. console.log('FormExtensionAbility onChangeFormVisibility, key: ${key}, value= ${newStatus[key]}');
  13. formProvider.updateForm(key, obj2).then((data) => {
  14. console.log('FormExtensionAbility context updateForm, data: ${data}');
  15. }).catch((error) => {
  16. console.error('Operation updateForm failed. Cause: ${error}');
  17. });
  18. }
  19. }
  20. };

onFormEvent

onFormEvent(formId: string, message: string): void

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

系统能力:SystemCapability.Ability.Form

参数:

参数名

类型

必填

说明

formId

string

请求触发事件的卡片标识。

message

string

事件消息。

示例:

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

onRemoveForm

onRemoveForm(formId: string): void

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

系统能力:SystemCapability.Ability.Form

参数:

参数名

类型

必填

说明

formId

string

请求销毁的卡片标识。

示例:

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

onConfigurationUpdate

onConfigurationUpdate(newConfig: Configuration): void;

当系统配置更新时调用。

系统能力:SystemCapability.Ability.Form

参数:

参数名

类型

必填

说明

newConfig

Configuration

表示需要更新的配置信息。

示例:

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

onAcquireFormState

onAcquireFormState?(want: Want): formInfo.FormState;

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

系统能力:SystemCapability.Ability.Form

参数:

参数名

类型

必填

说明

want

Want

want表示获取卡片状态的描述。描述包括包名称、能力名称、模块名称、卡片名和卡片维度。

示例:

  1. import formInfo from '@ohos.app.form.formInfo';
  2. class MyFormExtensionAbility extends FormExtensionAbility {
  3. onAcquireFormState(want) {
  4. console.log('FormExtensionAbility onAcquireFormState, want:' + want);
  5. return formInfo.FormState.UNKNOWN;
  6. }
  7. }
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号