js-template.md 11.9 KB
Newer Older
Z
zengyawen 已提交
1 2 3 4 5 6
# API接口说明模板

> *写作说明*
>
> 0.1 - 所有的写作说明,在完成写作后,都要删除。
>
W
wusongqing 已提交
7
> 0.2 - 上传路径:docs/zh-cn/application-dev/reference/apis,图片放到对应的figures文件夹中。上传后可通过提issue的方式,触发翻译。
Z
zengyawen 已提交
8 9
>
> 0.3 - 一个d.ts文件对应一个js api接口文档。**文件名称:js-apis-模块名.md**。示例:
Z
zengyawen 已提交
10 11
> 	媒体@ohos.multimedia.audio,文件命名为:js-apis-audio.md
> 	电话@ohos.telephony.sms,文件命名为:js-apis-sms.md
Z
zengyawen 已提交
12
>
W
wusongqing 已提交
13
> 0.4 - 新增文件,需要修改对应的Readme,即docs/zh-cn/application-dev/reference/apis/Readme-CN.md。
Z
zengyawen 已提交
14 15 16 17 18
>
> 0.5 - **文档标题**:使用中文短语概括本模块功能。但如果部分概念使用英文更便于开发者理解,不必强求,比方说,Ability、SIM卡等概念可以直接使用。
>
> 0.6 - 文档标题为一级标题;namespace下的属性字段、function、class、interface、enum、type为二级标题;class下的属性、function为三级标题。
>
19
> 0.7 - **对已有模块的新增接口标记起始版本:使用\<sup>标签,标记对应的版本号。**
Z
zengyawen 已提交
20 21
> 	示例:API 6已有的模块,在API 7新增了一个属性字段,则在属性后加标记,即newAttribute<sup>7+</sup>。
> 	如果新增了一个方法,则在方法标题后增加标记,即 sim.getSimIccId<sup>7+</sup>,interface、class、枚举等同理。
Z
zengyawen 已提交
22 23
>
> 0.8 - **废弃内容**:不能直接在文档上删去,在废弃内容后面加上标标注deprecated,并使用“>”引用语法建议使用的替代方式,加上对应的链接。
Z
zengyawen 已提交
24
> 	示例:abandonmentMethod<sup>(deprecated) </sup>
Z
zengyawen 已提交
25 26 27
>
> > 从API Version 7 开始废弃,建议使用[newMethod](#newMethod)替代。
>
Z
zengyawen 已提交
28
> 0.9 - **权限和syscap**:与代码保持一致,下沉到各个方法、枚举、属性字段中。
Z
zengyawen 已提交
29 30 31 32 33 34 35 36 37
> 下面进入具体每个API的写作。

***
> *写作说明*
>
> 1.1 - 使用markdown的引用语法“>”对接口的起始版本进行说明。
>
> 1.2 - 一个模块只会有一个起始版本。
>
W
wusongqing 已提交
38
> 1.3 - 采用标准句式:“本模块首批接口从API version x开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。”x需要修改为对应的版本号。
Z
zengyawen 已提交
39 40


Z
zengyawen 已提交
41 42 43

> **说明**
>
44
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
Z
zengyawen 已提交
45 46

模块说明。此处对该模块提供的功能、使用场景和使用建议进行简要描述。
S
s00567680 已提交
47

Z
zengyawen 已提交
48 49


S
s00567680 已提交
50
## 导入模块
Z
zengyawen 已提交
51

Z
zengyawen 已提交
52 53 54 55 56
> *写作说明*
>
> 2.1 - 根据实际情况填写导入模块。采用代码段的样式,给出import语句。
>
> 2.2 - 如果没有导入模块,将“导入模块”修改为“使用说明”。
Z
zengyawen 已提交
57 58
> 	使用说明案例:	
> 	在使用AbilityContext的功能前,需要通过[getContext()](链接到对应的接口说明文件中.md)先获取Context对象。
Z
zengyawen 已提交
59 60 61 62 63 64 65 66
>
> ```js
> import ability_featureAbility from '@ohos.ability.featureAbility';
> var context = ability_featureAbility.getContext();
> ```

```js
import call from '@ohos.telephony.call';
S
s00567680 已提交
67
```
Z
zengyawen 已提交
68

S
s00567680 已提交
69 70 71

## 属性

Z
zengyawen 已提交
72 73 74 75 76 77 78 79 80 81
> *写作说明*
>
> 4.1 - 可选,如果没有属性可删除此二级标题。
>
> 4.2 - 类型如果为自定义类型,需要建立链接到对应的interface或enum中。
>
> 4.3 - 对于可读属性:如果取值为有特殊含义的有限值,需要进行枚举。
>
> 4.4 - 对于可写属性:如果仅支持固定字段,需要进行说明。

Z
zengyawen 已提交
82 83 84 85
| 名称             | 类型                                      | 可读 | 可写 | 说明                                                         |
| ---------------- | ----------------------------------------- | ---- | ---- | ------------------------------------------------------------ |
| pluggedType      | [BatteryPluggedType](#BatteryPluggedType) | 是   | 否   | 表示当前设备连接的充电器类型。<br/>**系统能力**:SystemCapability.xxx.xxx(必选) |
| isBatteryPresent | boolean                                   | 是   | 否   | 表示当前设备是否支持电池或者电池是否在位。<br/>**系统能力**:SystemCapability.xxx.xxx(必选) |
Z
zengyawen 已提交
86 87 88 89 90 91 92 93 94 95 96

## 枚举

> *写作说明*
>
> 5.1 - 可选,如果没有可删除。如果有多个枚举,请分多个二级内容描述,并使用“##”自行新建二级标题。
>
> 5.2 - 二级标题名为实际枚举名,比方说 BatteryHealthState 。

在此处给出该枚举类型的简要描述。如:表示连接的充电器类型的枚举。

Z
zengyawen 已提交
97 98 99
| 名称 | 值   | 说明                                                         |
| ---- | ---- | ------------------------------------------------------------ |
| NONE | 1    | 表示连接的充电器类型未知。<br>**系统能力**:SystemCapability.xxx.xxx(必选) |
Z
zengyawen 已提交
100 101 102 103 104 105 106 107 108

## 方法

> *写作说明*
>
> 6.1 - 可选,如果没有可删除。如果有多个方法,请分多个二级内容描述,并使用“##”自行新建二级标题。
>
> 6.2 - 二级标题名为方法名,采用导入类.方法名,如果是订阅方法,需要在方法名加上对应的订阅事件。
>
Z
zengyawen 已提交
109 110 111
> 	示例: sim.getSimIccId
> 	
> 	订阅方法:sim.on('exampleEvent')
Z
zengyawen 已提交
112 113 114
>
> 6.3 - **方法具体调用形式**:和d.ts保持一致,需要包括参数类型、参数名、返回值类型。
>
Z
zengyawen 已提交
115 116 117
> 	示例:getNetworkState(slotId: number, callback: AsyncCallback\<NetworkState>): void
> 	
> 	注意:尖括号<>可能会被识别为标签,导致界面显示失效,可增加一个\,以保证界面正常显示,如“\\<>”或使用转义字符\&lt; \&gt; 。
Z
zengyawen 已提交
118
>
Z
zengyawen 已提交
119
> 6.4.1  - **方法描述**:对方法实现的功能进行描述,包括其使用的前提条件(*如:在xx方法调用后才能调用、需要确保网络已连接……*)、使用之后的影响(*如:调用该接口后再进行xx将不起效*)、**权限限制**、**系统能力**等。
Z
zengyawen 已提交
120 121 122
>
> 6.4.2 - **异步方法描述**:存在大量异步方法,其返回方式需要在方法描述处进行说明。通过注册回调函数获取?还是通过Promise获取?
>
W
wusongqing 已提交
123
> 6.4.3 - **表格内换行**:markdown语法中,换行采用特殊标记\<br>
Z
zengyawen 已提交
124 125 126 127 128

在此处给出方法的具体调用形式:(如果是静态方法需说明) 方法名称(参数1名称:参数1类型,参数2名称:参数2类型,……):返回值类型

在此处给出方法描述。说明请参考6.4.1和6.4.2。

Z
zengyawen 已提交
129 130 131
**需要权限**:ohos.permission.xxx(如不涉及可删除,如果是系统权限要说明)

**系统能力**:SystemCapability.xxx.xxx(必选)
Z
zengyawen 已提交
132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157

**参数:** (可选,如不涉及可删除)

| 参数名       | 类型                                          | 必填 | 说明                                                         |
| ------------ | --------------------------------------------- | ---- | ------------------------------------------------------------ |
| parameterOne | number \| string \| [CustomType](#CustomType) | 是   | 参数描述。给出取值范围、建议值。如果有固定格式,需要给出格式样例,尤其是URI。<br>自定义类型需要进行建链说明。 |
| callback     | Callback\<Array<[CustomType](#CustomType)>>   | 否   | 参数描述。可选参数需要说明不填写该参数的后果。<br>如:不填该参数则取消该type对应的所有回调。 |

**返回值**:(可选,如不涉及可删除)

| 类型                                       | 说明                                         |
| ------------------------------------------ | -------------------------------------------- |
| string                                     | 返回值描述。取到返回值之后,可以用来做什么。 |
| Promise\<Array<[CustomType](#CustomType)>> | 返回值描述。通过Promise获取了什么。          |

**示例:**

```js
// 必选项。
// 所有的示例代码需要进行自检。
// 不能出现缺符号、变量前后不一致等低错。
// 所有的使用到的变量要进行声明。
// 不允许直接写参数名,必须是可使用、易替代的实际用例。
// 如果非用户自定义填写,需通过注释进行说明。
// 示例:var result = xxx.createExample(parameterOne); // parameterOne由扫描自动获取
```
S
s00567680 已提交
158

Z
zengyawen 已提交
159
## Class/Interface
S
s00567680 已提交
160

Z
zengyawen 已提交
161 162 163 164 165 166 167 168
> *写作说明*
>
> 7.1 -  可选,如果没有可删除。如果有多个,请分多个二级内容描述,并使用“##”自行新建二级标题。
>
> 7.2 - 二级标题名为class、interface的名称。
>
> 7.3 - 如果该API中,既有属性,又有方法,需要先进行属性的写作,并使用“###”三级标题。
>
Z
zengyawen 已提交
169
> 	如果该API中,只有属性,那么不需要新建三级标题,直接使用表格陈列属性,具体示例参考[CustomType](#CustomType)。
S
s00567680 已提交
170

Z
zengyawen 已提交
171
类描述/interface描述。如果有使用限制,需要在这个地方说明。比方说,是否有前提条件,是否需要通过什么方法先构造一个实例。 
S
s00567680 已提交
172

Z
zengyawen 已提交
173
### 属性
S
s00567680 已提交
174

Z
zengyawen 已提交
175 176 177
> *写作说明*
>
> 除标题使用三级标题外,其余要求同[属性](#属性)。
S
s00567680 已提交
178

Z
zengyawen 已提交
179
### Class/Interface中的方法
S
s00567680 已提交
180

Z
zengyawen 已提交
181 182 183 184
> *写作说明*
>
> 7.4 - 标题名为方法名,使用三级标题,**没有前缀**。如果是订阅方法,需要在方法名加上对应的订阅事件。
>
Z
zengyawen 已提交
185 186 187
> 	示例: getSimIccId
> 	
> 	订阅方法:on('exampleEvent')
Z
zengyawen 已提交
188 189
>
> 其余要求请参考[方法](#方法)中的说明。
S
s00567680 已提交
190

Z
zengyawen 已提交
191
在此处给出方法的具体调用形式。说明请参考6.3。
S
s00567680 已提交
192

Z
zengyawen 已提交
193
在此处给出方法描述。说明请参考6.4.1和6.4.2。
S
s00567680 已提交
194

Z
zengyawen 已提交
195 196 197
**需要权限**:ohos.permission.xxx(如不涉及可删除,如果是系统权限要说明)

**系统能力**:SystemCapability.xxx.xxx(必选)
S
s00567680 已提交
198

Z
zengyawen 已提交
199
**参数:** (可选,如不涉及可删除)
S
s00567680 已提交
200

Z
zengyawen 已提交
201 202 203 204
| 参数名       | 类型                                          | 必填 | 说明                                                         |
| ------------ | --------------------------------------------- | ---- | ------------------------------------------------------------ |
| parameterOne | number \| string \| [CustomType](#CustomType) | 是   | 参数描述。给出取值范围、建议值。如果有固定格式,需要给出格式样例,尤其是URI。<br>自定义类型需要进行建链说明。 |
| callback     | Callback\<Array<[CustomType](#CustomType)>>   | 否   | 参数描述。可选参数需要说明不填写该参数的后果。<br>如:不填该参数则取消该type对应的所有回调。 |
S
s00567680 已提交
205

Z
zengyawen 已提交
206
**返回值**:(可选,如不涉及可删除)
S
s00567680 已提交
207

Z
zengyawen 已提交
208 209 210 211
| 类型                                       | 说明                                         |
| ------------------------------------------ | -------------------------------------------- |
| string                                     | 返回值描述。取到返回值之后,可以用来做什么。 |
| Promise\<Array<[CustomType](#CustomType)>> | 返回值描述。通过Promise获取了什么。          |
S
s00567680 已提交
212

Z
zengyawen 已提交
213
**示例:**
S
s00567680 已提交
214

Z
zengyawen 已提交
215 216 217 218 219 220 221 222 223
```js
// 必选项。
// 所有的示例代码需要进行自检。
// 不能出现缺符号、变量前后不一致等低错。
// 所有的使用到的变量要进行声明。
// 不允许直接写参数名,必须是可使用、易替代的实际用例。
// 如果非用户自定义填写,需通过注释进行说明。
// 示例:var result = xxx.createExample(parameterOne); // parameterOne由扫描自动获取
```
S
s00567680 已提交
224

Z
zengyawen 已提交
225
## CustomType
S
s00567680 已提交
226

Z
zengyawen 已提交
227
仅有k-v键值对的自定义类型示例。
S
s00567680 已提交
228

Z
zengyawen 已提交
229 230 231 232
| 名称         | 类型                | 可读 | 可写 | 说明                                                         |
| ------------ | ------------------- | ---- | ---- | ------------------------------------------------------------ |
| parameterUrl | string              | 是   | 是   | 媒体输出URI。支持:<br/>1. 协议类型为“internal”的相对路径,示例如下:<br/>临时目录:internal://cache/test.mp4<br/><br/>2. 文件的绝对路径,示例如下:<br/>file:///data/data/ohos.xxx.xxx/files/test.mp4<br/>**系统能力**:SystemCapability.xxx.xxx(必选) |
| parameterOne | [CustomEnum](#枚举) | 是   | 是   | 属性描述,要求与参数说明类似。<br/>**系统能力**:SystemCapability.xxx.xxx(必选) |