@ohos.app.form.FormExtensionAbility (FormExtensionAbility)
@ohos.app.form.FormExtensionAbility (FormExtensionAbility)
FormExtensionAbility为卡片扩展模块,提供卡片创建、销毁、刷新等生命周期回调。
说明:
本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 本模块接口仅可在Stage模型下使用。
导入模块
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 | 是 | 当前卡片相关的Want类型信息,包括卡片ID、卡片名称、卡片样式等。这些卡片信息必须作为持久数据进行管理,以便后续更新和删除卡片。 |
返回值:
类型 | 说明 |
---|---|
formBindingData.FormBindingData | formBindingData.FormBindingData对象,卡片要显示的数据。 |
示例:
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;
}
};
2
3
4
5
6
7
8
9
10
11
12
13
14
onCastToNormalForm
onCastToNormalForm(formId: string): void
卡片提供方接收临时卡片转常态卡片的通知接口。
系统能力:SystemCapability.Ability.Form
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
formId | string | 是 | 请求转换为常态的卡片标识。 |
示例:
import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';
export default class MyFormExtensionAbility extends FormExtensionAbility {
onCastToNormalForm(formId) {
console.log('FormExtensionAbility onCastToNormalForm, formId: ${formId}');
}
};
2
3
4
5
6
7
onUpdateForm
onUpdateForm(formId: string): void
卡片提供方接收更新卡片的通知接口。获取最新数据后调用formProvider的updateForm接口刷新卡片数据。
系统能力:SystemCapability.Ability.Form
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
formId | string | 是 | 请求更新的卡片ID。 |
示例:
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}');
});
}
};
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
onChangeFormVisibility
onChangeFormVisibility(newStatus: { [key: string]: number }): void
卡片提供方接收修改可见性的通知接口。
系统能力:SystemCapability.Ability.Form
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
newStatus | { [key: string]: number } | 是 | 请求修改的卡片标识和可见状态。 |
示例:
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}');
});
}
}
};
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
onFormEvent
onFormEvent(formId: string, message: string): void
卡片提供方接收处理卡片事件的通知接口。
系统能力:SystemCapability.Ability.Form
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
formId | string | 是 | 请求触发事件的卡片标识。 |
message | string | 是 | 事件消息。 |
示例:
import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';
export default class MyFormExtensionAbility extends FormExtensionAbility {
onFormEvent(formId, message) {
console.log('FormExtensionAbility onFormEvent, formId: ${formId}, message: ${message}');
}
};
2
3
4
5
6
7
onRemoveForm
onRemoveForm(formId: string): void
卡片提供方接收销毁卡片的通知接口。
系统能力:SystemCapability.Ability.Form
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
formId | string | 是 | 请求销毁的卡片标识。 |
示例:
import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';
export default class MyFormExtensionAbility extends FormExtensionAbility {
onRemoveForm(formId) {
console.log('FormExtensionAbility onRemoveForm, formId: ${formId}');
}
};
2
3
4
5
6
7
onConfigurationUpdate
onConfigurationUpdate(newConfig: Configuration): void;
当系统配置更新时调用。
系统能力:SystemCapability.Ability.Form
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
newConfig | Configuration | 是 | 表示需要更新的配置信息。 |
示例:
import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';
export default class MyFormExtensionAbility extends FormExtensionAbility {
onConfigurationUpdate(config) {
console.log('onConfigurationUpdate, config: ${JSON.stringify(config)}');
}
};
2
3
4
5
6
7
onAcquireFormState
onAcquireFormState?(want: Want): formInfo.FormState;
卡片提供方接收查询卡片状态通知接口。默认返回卡片初始状态。
系统能力:SystemCapability.Ability.Form
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | Want | 是 | want表示获取卡片状态的描述。描述包括Bundle名称、能力名称、模块名称、卡片名和卡片维度。 |
示例:
import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';
import formInfo from '@ohos.app.form.formInfo';
export default class MyFormExtensionAbility extends FormExtensionAbility {
onAcquireFormState(want) {
console.log('FormExtensionAbility onAcquireFormState, want: ${want}');
return formInfo.FormState.UNKNOWN;
}
};
2
3
4
5
6
7
8
9
onShareForm
onShareForm?(formId: string): { [key: string]: Object }
卡片提供方接收卡片分享的通知接口。
系统接口: 此接口为系统接口。
系统能力:SystemCapability.Ability.Form
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
formId | string | 是 | 卡片标识。 |
返回值:
类型 | 说明 |
---|---|
{[key: string]: any} | 卡片要分享的数据,由开发者自行决定传入的键值对。 |
示例:
import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';
export default class MyFormExtensionAbility extends FormExtensionAbility {
onShareForm(formId) {
console.log('FormExtensionAbility onShareForm, formId: ${formId}');
let wantParams = {
'temperature': '20',
'time': '2022-8-8 09:59',
};
return wantParams;
}
};
2
3
4
5
6
7
8
9
10
11
12