js-apis-inner-application-formExtensionContext.md 4.0 KB
Newer Older
1 2
# FormExtensionContext

Y
yangzk 已提交
3
FormExtensionContext模块是FormExtensionAbility的上下文环境,继承自ExtensionContext。
Y
yuyaozhi 已提交
4

Y
yangzk 已提交
5
FormExtensionContext模块提供FormExtensionAbility具有的接口和能力。
Y
yuyaozhi 已提交
6

Y
yuyaozhi 已提交
7
> **说明:**
8 9
>
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
10
> 本模块接口仅可在Stage模型下使用。
11

12
## 使用说明
13

Y
yangzk 已提交
14
在使用FormExtensionContext的功能前,需要通过FormExtensionAbility获取。
M
m00512953 已提交
15 16

```ts
17 18
import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';
import formBindingData from '@ohos.app.form.formBindingData';
Y
yangzk 已提交
19

20
export default class MyFormExtensionAbility extends FormExtensionAbility {
Y
yangzk 已提交
21 22 23 24
  onAddForm(want) {
    let formContext = this.context; // 获取FormExtensionContext
    // ...
    let dataObj1 = {
M
mingxihua 已提交
25 26
      temperature: '11c',
      'time': '11:00'
Y
yangzk 已提交
27 28 29 30 31
    };
    let obj1 = formBindingData.createFormBindingData(dataObj1);
    return obj1;
  }
};
32
```
33

34
## startAbility
35 36 37

startAbility(want: Want, callback: AsyncCallback<void>): void

38
拉起一个卡片所属应用的Ability。使用callback异步回调。
39

40
**系统接口**:此接口为系统接口。
41

42
**系统能力**:SystemCapability.Ability.Form
43

44 45 46 47
**参数:**

| 参数名 |                类型               | 必填 |              说明               |
| ------| --------------------------------- | ---- | -------------------------------------- |
M
m00512953 已提交
48
| want| [Want](js-apis-application-want.md) | 是  | 包含bundleName,abilityName以及用户自定参数用于拉起Ability。 |
49
| callback| AsyncCallback<void>       | 是  | 回调函数。当拉起一个卡片所属应用的Ability成功,err为undefined,否则为错误对象。 |
50 51 52

**示例:**

M
m00512953 已提交
53
```ts
Y
yangzk 已提交
54 55 56 57 58
import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';

export default class MyFormExtensionAbility extends FormExtensionAbility {
  onFormEvent(formId, message) {
    // 当触发卡片message事件时,执行startAbility
M
mingxihua 已提交
59
    console.log('FormExtensionAbility onFormEvent, formId: ${formId}, message:${message}');
Y
yangzk 已提交
60
    let want = {
M
mingxihua 已提交
61 62 63
      deviceId: '',
      bundleName: 'com.example.formstartability',
      abilityName: 'EntryAbility',
Y
yangzk 已提交
64
      parameters: {
M
mingxihua 已提交
65
        'message': message
Y
yangzk 已提交
66 67 68 69
      }
    };
    this.context.startAbility(want, (error, data) => {
      if (error) {
M
mingxihua 已提交
70
        console.log('FormExtensionContext startAbility, error:${JSON.stringify(error)}');
Y
yangzk 已提交
71 72 73 74 75 76
      } else {
        console.log('FormExtensionContext startAbility success');
      }
    });
  }
};
77 78
```

79
## startAbility
80 81 82

startAbility(want: Want): Promise<void>

83
拉起一个卡片所属应用的Ability。使用Promise异步回调。
84

85
**系统接口**:此接口为系统接口。
86

87
**系统能力**:SystemCapability.Ability.Form
88

89 90 91 92
**参数:**

| 参数名 |                类型               | 必填 |              说明               |
| ------| --------------------------------- | ---- | -------------------------------------- |
M
m00512953 已提交
93
| want| [Want](js-apis-application-want.md) | 是  | 包含bundleName,abilityName以及用户自定参数用于拉起Ability。 |
94 95 96 97 98

**返回值:**

| 类型          | 说明                                |
| ------------ | ---------------------------------- |
Y
yangzk 已提交
99
| Promise<void> | 无返回结果的Promise对象。 |
100 101 102

**示例:**

M
m00512953 已提交
103
```ts
Y
yangzk 已提交
104 105 106 107 108
import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';

export default class MyFormExtensionAbility extends FormExtensionAbility {
  onFormEvent(formId, message) {
    // 当触发卡片message事件时,执行startAbility
M
mingxihua 已提交
109
    console.log('FormExtensionAbility onFormEvent, formId:${formId}, message:${message}');
Y
yangzk 已提交
110
    let want = {
M
mingxihua 已提交
111 112 113
      deviceId: '',
      bundleName: 'com.example.formstartability',
      abilityName: 'EntryAbility',
Y
yangzk 已提交
114
      parameters: {
M
mingxihua 已提交
115
        'message': message
Y
yangzk 已提交
116 117 118
      }
    };
    this.context.startAbility(want).then(() => {
M
mingxihua 已提交
119
      console.info('StartAbility Success');
Y
yangzk 已提交
120
    }).catch((error) => {
M
mingxihua 已提交
121
      console.info('StartAbility failed');
Y
yangzk 已提交
122 123 124
    });
  }
};
125
```