提供卡片創(chuàng)建、銷毀、刷新等生命周期回調(diào)

2024-01-22 18:58 更新

FormExtensionAbility為卡片擴展模塊,提供卡片創(chuàng)建、銷毀、刷新等生命周期回調(diào)。

說明

本模塊首批接口從API version 9開始支持。后續(xù)版本的新增接口,采用上角標單獨標記接口的起始版本。

本模塊接口僅可在Stage模型下使用。

導入模塊

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

屬性

系統(tǒng)能力:SystemCapability.Ability.Form

名稱

類型

可讀

可寫

說明

context

FormExtensionContext

FormExtensionAbility的上下文環(huán)境,繼承自ExtensionContext。

onAddForm

onAddForm(want: Want): formBindingData.FormBindingData

卡片提供方接收創(chuàng)建卡片的通知接口。

系統(tǒng)能力:SystemCapability.Ability.Form

參數(shù):

參數(shù)名

類型

必填

說明

want

Want

當前ExtensionAbility相關(guān)的Want類型信息,包括卡片ID、卡片名稱、卡片樣式等。這些卡片信息必須作為持久數(shù)據(jù)進行管理,以便后續(xù)更新和刪除卡片。

返回值:

類型

說明

formBindingData.FormBindingData

formBindingData.FormBindingData對象,卡片要顯示的數(shù)據(jù)。

示例:

  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

卡片提供方接收臨時卡片轉(zhuǎn)常態(tài)卡片的通知接口。

系統(tǒng)能力:SystemCapability.Ability.Form

參數(shù):

參數(shù)名

類型

必填

說明

formId

string

請求轉(zhuǎn)換為常態(tài)的卡片標識。

示例:

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

onUpdateForm

onUpdateForm(formId: string): void

卡片提供方接收更新卡片的通知接口。獲取最新數(shù)據(jù)后調(diào)用formProviderupdateForm接口刷新卡片數(shù)據(jù)。

系統(tǒng)能力:SystemCapability.Ability.Form

參數(shù):

參數(shù)名

類型

必填

說明

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

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

系統(tǒng)能力:SystemCapability.Ability.Form

參數(shù):

參數(shù)名

類型

必填

說明

newStatus

{ [key: string]: number }

請求修改的卡片標識和可見狀態(tài)。

示例:

  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

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

系統(tǒng)能力:SystemCapability.Ability.Form

參數(shù):

參數(shù)名

類型

必填

說明

formId

string

請求觸發(fā)事件的卡片標識。

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

卡片提供方接收銷毀卡片的通知接口。

系統(tǒng)能力:SystemCapability.Ability.Form

參數(shù):

參數(shù)名

類型

必填

說明

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;

當系統(tǒng)配置更新時調(diào)用。

系統(tǒng)能力:SystemCapability.Ability.Form

參數(shù):

參數(shù)名

類型

必填

說明

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;

卡片提供方接收查詢卡片狀態(tài)通知接口。默認返回卡片初始狀態(tài)。

系統(tǒng)能力:SystemCapability.Ability.Form

參數(shù):

參數(shù)名

類型

必填

說明

want

Want

want表示獲取卡片狀態(tài)的描述。描述包括包名稱、能力名稱、模塊名稱、卡片名和卡片維度。

示例:

  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. }
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號