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 14 15 16 17
## 导入模块

```ts
import common from '@ohos.app.ability.common';
```

18
## 使用说明
19

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

```ts
23 24
import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';
import formBindingData from '@ohos.app.form.formBindingData';
Y
yangzk 已提交
25

26
class MyFormExtensionAbility extends FormExtensionAbility {
Y
yangzk 已提交
27 28 29 30
  onAddForm(want) {
    let formContext = this.context; // 获取FormExtensionContext
    // ...
    let dataObj1 = {
M
mingxihua 已提交
31 32
      temperature: '11c',
      'time': '11:00'
Y
yangzk 已提交
33 34 35 36 37
    };
    let obj1 = formBindingData.createFormBindingData(dataObj1);
    return obj1;
  }
};
38
```
39

40
## startAbility
41 42 43

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

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

46
**系统接口**:此接口为系统接口。
47

48
**系统能力**:SystemCapability.Ability.Form
49

50 51 52 53 54 55 56 57 58 59 60 61
**错误码:**

| 错误码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)。||

62 63 64 65
**参数:**

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

**示例:**

M
m00512953 已提交
71
```ts
Y
yangzk 已提交
72 73 74 75 76
import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';

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

97
## startAbility
98 99 100

startAbility(want: Want): Promise<void>

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

103
**系统接口**:此接口为系统接口。
104

105
**系统能力**:SystemCapability.Ability.Form
106

107 108 109 110
**参数:**

| 参数名 |                类型               | 必填 |              说明               |
| ------| --------------------------------- | ---- | -------------------------------------- |
M
m00512953 已提交
111
| want| [Want](js-apis-application-want.md) | 是  | 包含bundleName,abilityName以及用户自定参数用于拉起Ability。 |
112 113 114 115 116

**返回值:**

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

119 120 121 122 123 124 125 126 127 128 129 130
**错误码:**

| 错误码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)。||

131 132
**示例:**

M
m00512953 已提交
133
```ts
Y
yangzk 已提交
134 135 136 137 138
import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';

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