js-apis-inner-application-formExtensionContext.md 5.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 48 49 50 51 52 53 54 55
**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
| 202 | The application is not a system application. |
| 401 | If the input parameter is not valid parameter. |
| 16500050 | An IPC connection error happened. |
| 16500100 | Failed to obtain the configuration information. |
| 16500101 | The application is not a system application. |
| 16501000 | An internal functional error occurred. |
|以上错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)。||

56 57 58 59
**参数:**

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

**示例:**

M
m00512953 已提交
65
```ts
Y
yangzk 已提交
66 67 68 69 70
import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';

export default class MyFormExtensionAbility extends FormExtensionAbility {
  onFormEvent(formId, message) {
    // 当触发卡片message事件时,执行startAbility
M
mingxihua 已提交
71
    console.log('FormExtensionAbility onFormEvent, formId: ${formId}, message:${message}');
Y
yangzk 已提交
72
    let want = {
M
mingxihua 已提交
73 74 75
      deviceId: '',
      bundleName: 'com.example.formstartability',
      abilityName: 'EntryAbility',
Y
yangzk 已提交
76
      parameters: {
M
mingxihua 已提交
77
        'message': message
Y
yangzk 已提交
78 79 80 81
      }
    };
    this.context.startAbility(want, (error, data) => {
      if (error) {
M
mingxihua 已提交
82
        console.error('FormExtensionContext startAbility, error:${JSON.stringify(error)}');
Y
yangzk 已提交
83 84 85 86 87 88
      } else {
        console.log('FormExtensionContext startAbility success');
      }
    });
  }
};
89 90
```

91
## startAbility
92 93 94

startAbility(want: Want): Promise<void>

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

97
**系统接口**:此接口为系统接口。
98

99
**系统能力**:SystemCapability.Ability.Form
100

101 102 103 104
**参数:**

| 参数名 |                类型               | 必填 |              说明               |
| ------| --------------------------------- | ---- | -------------------------------------- |
M
m00512953 已提交
105
| want| [Want](js-apis-application-want.md) | 是  | 包含bundleName,abilityName以及用户自定参数用于拉起Ability。 |
106 107 108 109 110

**返回值:**

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

113 114 115 116 117 118 119 120 121 122 123 124
**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
| 202 | The application is not a system application. |
| 401 | If the input parameter is not valid parameter. |
| 16500050 | An IPC connection error happened. |
| 16500100 | Failed to obtain the configuration information. |
| 16500101 | The application is not a system application. |
| 16501000 | An internal functional error occurred. |
|以上错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)。||

125 126
**示例:**

M
m00512953 已提交
127
```ts
Y
yangzk 已提交
128 129 130 131 132
import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';

export default class MyFormExtensionAbility extends FormExtensionAbility {
  onFormEvent(formId, message) {
    // 当触发卡片message事件时,执行startAbility
M
mingxihua 已提交
133
    console.log('FormExtensionAbility onFormEvent, formId:${formId}, message:${message}');
Y
yangzk 已提交
134
    let want = {
M
mingxihua 已提交
135 136 137
      deviceId: '',
      bundleName: 'com.example.formstartability',
      abilityName: 'EntryAbility',
Y
yangzk 已提交
138
      parameters: {
M
mingxihua 已提交
139
        'message': message
Y
yangzk 已提交
140 141 142
      }
    };
    this.context.startAbility(want).then(() => {
M
mingxihua 已提交
143
      console.info('StartAbility Success');
Y
yangzk 已提交
144
    }).catch((error) => {
M
mingxihua 已提交
145
      console.error('StartAbility failed');
Y
yangzk 已提交
146 147 148
    });
  }
};
149
```