js-apis-Context.md 13.9 KB
Newer Older
X
xuchenghua09 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# Context模块

## 导入模块

```js
import featureAbility from '@ohos.ability.featureAbility'
import bundle from '@ohos.bundle'
```

Context对象是在featureAbility中创建实例,并通过featureAbility的getContext()接口返回,因此在使用Context时,必须导入@ohos.ability.featureAbility库。示例如下:

```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getOrCreateLocalDir()
```

Z
zengyawen 已提交
18
## Context
X
xuchenghua09 已提交
19

Z
zengyawen 已提交
20
### getOrCreateLocalDir
X
xuchenghua09 已提交
21

Z
zengyawen 已提交
22
getOrCreateLocalDir(callback: AsyncCallback\<string>): void
X
xuchenghua09 已提交
23

Z
zengyawen 已提交
24
获取应用程序的本地根目录(callback形式)。
X
xuchenghua09 已提交
25

Z
zengyawen 已提交
26
如果是第一次调用,将创建目录。
X
xuchenghua09 已提交
27

Z
zengyawen 已提交
28
**参数:**
X
xuchenghua09 已提交
29 30


Z
zengyawen 已提交
31 32 33
| 名称     | 类型                   | 必填 | 描述                       |
| -------- | ---------------------- | ---- | -------------------------- |
| callback | AsyncCallback\<string> | 是   | 返回应用程序的本地根目录。 |
X
xuchenghua09 已提交
34

Z
zengyawen 已提交
35
**示例:**
X
xuchenghua09 已提交
36 37 38 39 40 41 42 43 44 45 46

```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getOrCreateLocalDir((err, data)=>{
    console.info("data=" + data);
})
```



Z
zengyawen 已提交
47 48 49
### getOrCreateLocalDir

getOrCreateLocalDir(): Promise\<string>
X
xuchenghua09 已提交
50

Z
zengyawen 已提交
51
获取应用程序的本地根目录(Promise形式)。
X
xuchenghua09 已提交
52

Z
zengyawen 已提交
53
如果是第一次调用,将创建目录。
X
xuchenghua09 已提交
54

Z
zengyawen 已提交
55
**返回值:**
X
xuchenghua09 已提交
56

Z
zengyawen 已提交
57 58 59
| 类型             | 说明                   |
| ---------------- | ---------------------- |
| Promise\<string> | 应用程序的本地根目录。 |
X
xuchenghua09 已提交
60

Z
zengyawen 已提交
61
**示例:**
X
xuchenghua09 已提交
62 63 64 65

```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
ahjxliubao2's avatar
ahjxliubao2 已提交
66
context.getOrCreateLocalDir().then(() => {
X
xuchenghua09 已提交
67 68 69 70 71 72
	console.info("==========================>getOrCreateLocalDirCallback=======================>");
});
```



Z
zengyawen 已提交
73
### verifyPermission
X
xuchenghua09 已提交
74

Z
zengyawen 已提交
75
verifyPermission(permission: string, options: PermissionOptions, callback: AsyncCallback\<number>): void
X
xuchenghua09 已提交
76

Z
zengyawen 已提交
77
验证系统中运行的特定pid和uid是否允许指定的权限(callback形式)。
X
xuchenghua09 已提交
78

Z
zengyawen 已提交
79
**参数:**
X
xuchenghua09 已提交
80 81


Z
zengyawen 已提交
82 83 84 85 86
| 名称       | 类型                                    | 必填 | 描述                                  |
| ---------- | --------------------------------------- | ---- | ------------------------------------- |
| permission | string                                  | 是   | 指定权限的名称。                      |
| options    | [PermissionOptions](#permissionoptions) | 是   | 权限选项。                            |
| callback   | AsyncCallback\<number>                  | 是   | 返回权限验证结果,0有权限,-1无权限。 |
X
xuchenghua09 已提交
87

Z
zengyawen 已提交
88
**示例:**
X
xuchenghua09 已提交
89 90 91 92 93

```js
import featureAbility from '@ohos.ability.featureAbility'
import bundle from '@ohos.bundle'
var context = featureAbility.getContext();
ahjxliubao2's avatar
ahjxliubao2 已提交
94 95 96
bundle.getBundleInfo('com.context.test', 1, (datainfo) =>{
	context.verifyPermission("com.example.permission", datainfo.uid);
});
X
xuchenghua09 已提交
97 98 99 100
```



Z
zengyawen 已提交
101
### verifyPermission
X
xuchenghua09 已提交
102

Z
zengyawen 已提交
103
verifyPermission(permission: string, callback: AsyncCallback\<number>): void
X
xuchenghua09 已提交
104

Z
zengyawen 已提交
105
验证系统中运行的当前pid和uid是否具有指定的权限(callback形式)。
X
xuchenghua09 已提交
106

Z
zengyawen 已提交
107
**参数:**
X
xuchenghua09 已提交
108 109


Z
zengyawen 已提交
110 111 112 113
| 名称       | 类型                   | 必填 | 描述                                  |
| ---------- | ---------------------- | ---- | ------------------------------------- |
| permission | string                 | 是   | 指定权限的名称。                      |
| callback   | AsyncCallback\<number> | 是   | 返回权限验证结果,0有权限,-1无权限。 |
X
xuchenghua09 已提交
114

Z
zengyawen 已提交
115
**示例:**
X
xuchenghua09 已提交
116 117 118 119 120 121 122

```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.verifyPermission("com.example.permission")
```

Z
zengyawen 已提交
123
### verifyPermission
X
xuchenghua09 已提交
124

Z
zengyawen 已提交
125
verifyPermission(permission: string, options?: PermissionOptions): Promise\<number>
X
xuchenghua09 已提交
126

Z
zengyawen 已提交
127
验证系统中运行的特定pid和uid是否具有指定的权限(Promise形式)。
X
xuchenghua09 已提交
128

Z
zengyawen 已提交
129
**参数:**
X
xuchenghua09 已提交
130 131


Z
zengyawen 已提交
132 133 134 135
| 名称       | 类型                                    | 必填 | 描述             |
| ---------- | --------------------------------------- | ---- | ---------------- |
| permission | string                                  | 是   | 指定权限的名称。 |
| options    | [PermissionOptions](#permissionoptions) | 否   | 权限选项。       |
X
xuchenghua09 已提交
136

Z
zengyawen 已提交
137
**返回值:**
X
xuchenghua09 已提交
138

Z
zengyawen 已提交
139 140 141
| 类型             | 说明                                                        |
| ---------------- | ----------------------------------------------------------- |
| Promise\<number> | 如果pid和uid具有权限,则使用0进行异步回调;否则使用-1回调。 |
X
xuchenghua09 已提交
142

Z
zengyawen 已提交
143
**示例:**
X
xuchenghua09 已提交
144 145 146 147 148

```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
var Permission = context.PermissionOptions(1,1);
ahjxliubao2's avatar
ahjxliubao2 已提交
149
context.getOrCreateLocalDir('com.context.permission',Permission).then(() => {
X
xuchenghua09 已提交
150 151 152 153 154 155
	console.info("==========================>verifyPermissionCallback=======================>");
});
```



Z
zengyawen 已提交
156
### requestPermissionsFromUser
X
xuchenghua09 已提交
157

Z
zengyawen 已提交
158
requestPermissionsFromUser(permissions: Array\<string>, requestCode: number, resultCallback: AsyncCallback<[PermissionRequestResult](#permissionrequestresult)>)
X
xuchenghua09 已提交
159

Z
zengyawen 已提交
160
从系统请求某些权限(callback形式)。
X
xuchenghua09 已提交
161

Z
zengyawen 已提交
162
**参数:**
X
xuchenghua09 已提交
163 164


Z
zengyawen 已提交
165 166 167 168 169 170
| 名称           | 类型                                                         | 必填 | 描述                                            |
| -------------- | ------------------------------------------------------------ | ---- | ----------------------------------------------- |
| permissions    | Array\<string>                                               | 是   | 指示要请求的权限列表。此参数不能为null。        |
| requestCode    | number                                                       | 是   | 指示要传递给PermissionRequestResult的请求代码。 |
| resultCallback | AsyncCallback<[PermissionRequestResult](#permissionrequestresult)> | 是   | 返回授权结果信息。                              |
**示例:**
X
xuchenghua09 已提交
171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186

```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getOrCreateLocalDir(    
    ["com.example.permission1",
     "com.example.permission2",
     "com.example.permission3",
     "com.example.permission4",
     "com.example.permission5"],
    1,
)
```



Z
zengyawen 已提交
187
### getApplicationInfo
X
xuchenghua09 已提交
188

Z
zengyawen 已提交
189
getApplicationInfo(callback: AsyncCallback\<ApplicationInfo>)
X
xuchenghua09 已提交
190

Z
zengyawen 已提交
191
获取有关当前应用程序的信息(callback形式)。
X
xuchenghua09 已提交
192

Z
zengyawen 已提交
193
**参数:**
X
xuchenghua09 已提交
194

Z
zengyawen 已提交
195 196 197
| 名称     | 类型                            | 必填 | 描述                     |
| -------- | ------------------------------- | ---- | ------------------------ |
| callback | AsyncCallback\<ApplicationInfo> | 是   | 返回当前应用程序的信息。 |
X
xuchenghua09 已提交
198

Z
zengyawen 已提交
199
**示例:**
X
xuchenghua09 已提交
200 201 202 203 204 205 206 207 208

```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getApplicationInfo()
```



Z
zengyawen 已提交
209
### getApplicationInfo
X
xuchenghua09 已提交
210

Z
zengyawen 已提交
211
getApplicationInfo(): Promise\<ApplicationInfo>
X
xuchenghua09 已提交
212

Z
zengyawen 已提交
213
获取有关当前应用程序的信息(Promise形式)。
X
xuchenghua09 已提交
214

Z
zengyawen 已提交
215
**返回值:**
X
xuchenghua09 已提交
216

Z
zengyawen 已提交
217 218 219
| 类型                      | 说明               |
| ------------------------- | ------------------ |
| Promise\<ApplicationInfo> | 当前应用程序的信息 |
X
xuchenghua09 已提交
220

Z
zengyawen 已提交
221
**示例:**
X
xuchenghua09 已提交
222 223 224 225

```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
ahjxliubao2's avatar
ahjxliubao2 已提交
226
context.getApplicationInfo().then(() => {
X
xuchenghua09 已提交
227 228 229 230 231 232
	console.info("==========================>getApplicationInfoCallback=======================>");
});
```



Z
zengyawen 已提交
233
### getBundleName
X
xuchenghua09 已提交
234

Z
zengyawen 已提交
235
getBundleName(callback: AsyncCallback\<string>): void
X
xuchenghua09 已提交
236

Z
zengyawen 已提交
237
获取当前ability的捆绑包名称(callback形式)。
X
xuchenghua09 已提交
238

Z
zengyawen 已提交
239
**参数:**
X
xuchenghua09 已提交
240

Z
zengyawen 已提交
241 242 243
| 名称     | 类型                   | 必填 | 描述                          |
| -------- | ---------------------- | ---- | ----------------------------- |
| callback | AsyncCallback\<string> | 是   | 返回当前ability的捆绑包名称。 |
X
xuchenghua09 已提交
244

Z
zengyawen 已提交
245
**示例:**
X
xuchenghua09 已提交
246 247 248 249 250 251 252 253 254

```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getBundleName()
```



Z
zengyawen 已提交
255
### getBundleName
X
xuchenghua09 已提交
256

Z
zengyawen 已提交
257
getBundleName(): Promise\<string>
X
xuchenghua09 已提交
258

Z
zengyawen 已提交
259
获取当前ability的捆绑包名称(Promise形式)。
X
xuchenghua09 已提交
260

Z
zengyawen 已提交
261
**返回值:**
X
xuchenghua09 已提交
262

Z
zengyawen 已提交
263 264 265
| 类型             | 说明                      |
| ---------------- | ------------------------- |
| Promise\<string> | 当前ability的捆绑包名称。 |
X
xuchenghua09 已提交
266

Z
zengyawen 已提交
267
**示例:**
X
xuchenghua09 已提交
268 269 270 271

```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
ahjxliubao2's avatar
ahjxliubao2 已提交
272
context.getBundleName().then(() => {
X
xuchenghua09 已提交
273 274 275 276 277 278
	console.info("==========================>getBundleNameCallback=======================>");
});
```



Z
zengyawen 已提交
279
### getProcessInfo
X
xuchenghua09 已提交
280

Z
zengyawen 已提交
281
getProcessInfo(callback: AsyncCallback\<ProcessInfo>)
X
xuchenghua09 已提交
282

Z
zengyawen 已提交
283
获取有关当前进程的信息,包括进程ID和名称(callback形式)。
X
xuchenghua09 已提交
284

Z
zengyawen 已提交
285
**参数:**
X
xuchenghua09 已提交
286

Z
zengyawen 已提交
287 288 289
| 名称     | 类型                        | 必填 | 描述                 |
| -------- | --------------------------- | ---- | -------------------- |
| callback | AsyncCallback\<ProcessInfo> | 是   | 返回当前进程的信息。 |
X
xuchenghua09 已提交
290

Z
zengyawen 已提交
291
**示例:**
X
xuchenghua09 已提交
292 293 294 295 296 297 298 299 300

```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getProcessInfo()
```



Z
zengyawen 已提交
301
### getProcessInfo
X
xuchenghua09 已提交
302

Z
zengyawen 已提交
303
getProcessInfo(): Promise\<ProcessInfo>
X
xuchenghua09 已提交
304

Z
zengyawen 已提交
305
获取有关当前进程的信息,包括进程id和名称(Promise形式)。
X
xuchenghua09 已提交
306

Z
zengyawen 已提交
307
**返回值:**
X
xuchenghua09 已提交
308

Z
zengyawen 已提交
309 310 311
| 类型                  | 说明           |
| --------------------- | -------------- |
| Promise\<ProcessInfo> | 当前进程的信息 |
X
xuchenghua09 已提交
312

Z
zengyawen 已提交
313
**示例:**
X
xuchenghua09 已提交
314 315 316 317

```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
ahjxliubao2's avatar
ahjxliubao2 已提交
318
context.getProcessInfo().then(() => {
X
xuchenghua09 已提交
319 320 321 322 323 324
	console.info("==========================>getProcessInfoCallback=======================>");
});
```



Z
zengyawen 已提交
325
### getElementName
X
xuchenghua09 已提交
326

Z
zengyawen 已提交
327
getElementName(callback: AsyncCallback\<ElementName>): void
X
xuchenghua09 已提交
328

Z
zengyawen 已提交
329
获取当前ability的ohos.bundle.ElementName对象(callback形式)。
X
xuchenghua09 已提交
330

Z
zengyawen 已提交
331
此方法仅适用于页面功能。
X
xuchenghua09 已提交
332

Z
zengyawen 已提交
333
**参数:**
X
xuchenghua09 已提交
334

Z
zengyawen 已提交
335 336 337
| 名称     | 类型                        | 必填 | 描述                                           |
| -------- | --------------------------- | ---- | ---------------------------------------------- |
| callback | AsyncCallback\<ElementName> | 是   | 返回当前ability的ohos.bundle.ElementName对象。 |
X
xuchenghua09 已提交
338

Z
zengyawen 已提交
339
**示例:**
X
xuchenghua09 已提交
340 341 342 343 344 345 346 347 348

```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getElementName()
```



Z
zengyawen 已提交
349
### getElementName
X
xuchenghua09 已提交
350

Z
zengyawen 已提交
351
getElementName(): Promise\<ElementName>
X
xuchenghua09 已提交
352

Z
zengyawen 已提交
353
获取当前能力的ohos.bundle.ElementName对象(Promise形式)。
X
xuchenghua09 已提交
354

Z
zengyawen 已提交
355
此方法仅适用于页面功能。
X
xuchenghua09 已提交
356

Z
zengyawen 已提交
357
**返回值:**
X
xuchenghua09 已提交
358

Z
zengyawen 已提交
359 360 361
| 类型                  | 说明                                       |
| --------------------- | ------------------------------------------ |
| Promise\<ElementName> | 当前ability的ohos.bundle.ElementName对象。 |
X
xuchenghua09 已提交
362

Z
zengyawen 已提交
363
**示例:**
X
xuchenghua09 已提交
364 365 366 367

```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
ahjxliubao2's avatar
ahjxliubao2 已提交
368
context.getElementName().then(() => {
X
xuchenghua09 已提交
369 370 371 372
	console.info("==========================>getElementNameCallback=======================>");
});
```

Z
zengyawen 已提交
373
### getProcessName
X
xuchenghua09 已提交
374

Z
zengyawen 已提交
375
getProcessName(callback: AsyncCallback\<string>): void
X
xuchenghua09 已提交
376

Z
zengyawen 已提交
377
获取当前进程的名称(callback形式)。
X
xuchenghua09 已提交
378

Z
zengyawen 已提交
379 380 381
| 名称     | 类型                   | 必填 | 描述                 |
| -------- | ---------------------- | ---- | -------------------- |
| callback | AsyncCallback\<string> | 是   | 返回当前进程的名称。 |
X
xuchenghua09 已提交
382

Z
zengyawen 已提交
383
**示例:**
X
xuchenghua09 已提交
384 385 386 387 388 389 390 391 392

```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getProcessName()
```



Z
zengyawen 已提交
393
### getProcessName
X
xuchenghua09 已提交
394

Z
zengyawen 已提交
395
getProcessName(): Promise\<string>
X
xuchenghua09 已提交
396

Z
zengyawen 已提交
397
获取当前进程的名称(Promise形式)。
X
xuchenghua09 已提交
398

Z
zengyawen 已提交
399
**返回值:**
X
xuchenghua09 已提交
400

Z
zengyawen 已提交
401 402 403
| 类型             | 说明                 |
| ---------------- | -------------------- |
| Promise\<string> | 返回当前进程的名称。 |
X
xuchenghua09 已提交
404

Z
zengyawen 已提交
405
**示例:**
X
xuchenghua09 已提交
406 407 408 409

```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
ahjxliubao2's avatar
ahjxliubao2 已提交
410
context.getProcessName().then(() => {
X
xuchenghua09 已提交
411 412 413 414 415 416
	console.info("==========================>getProcessNameCallback=======================>");
});
```



Z
zengyawen 已提交
417
### getCallingBundle
X
xuchenghua09 已提交
418

Z
zengyawen 已提交
419
getCallingBundle(callback: AsyncCallback\<string>): void
X
xuchenghua09 已提交
420

Z
zengyawen 已提交
421
获取调用ability的包名称(callback形式)。
X
xuchenghua09 已提交
422

Z
zengyawen 已提交
423
**参数:**
X
xuchenghua09 已提交
424

Z
zengyawen 已提交
425 426 427
| 名称     | 类型                   | 必填 | 描述                      |
| -------- | ---------------------- | ---- | ------------------------- |
| callback | AsyncCallback\<string> | 是   | 返回调用ability的包名称。 |
X
xuchenghua09 已提交
428

Z
zengyawen 已提交
429
**示例:**
X
xuchenghua09 已提交
430 431 432 433 434 435 436 437 438

```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
context.getCallingBundle()
```



Z
zengyawen 已提交
439
### getCallingBundle
X
xuchenghua09 已提交
440

Z
zengyawen 已提交
441
getCallingBundle(): Promise\<string>
X
xuchenghua09 已提交
442

Z
zengyawen 已提交
443
获取调用ability的包名称(Promise形式)。
X
xuchenghua09 已提交
444

Z
zengyawen 已提交
445
**返回值:**
X
xuchenghua09 已提交
446

Z
zengyawen 已提交
447 448 449
| 类型            | 说明                      |
| --------------- | ------------------------- |
| Promise\<string> | 调用ability的包名称 |
X
xuchenghua09 已提交
450

Z
zengyawen 已提交
451
**示例:**
X
xuchenghua09 已提交
452 453 454 455

```js
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext();
ahjxliubao2's avatar
ahjxliubao2 已提交
456
context.getCallingBundle().then(() => {
X
xuchenghua09 已提交
457 458 459 460
	console.info("==========================>getCallingBundleCallback=======================>");
});
```

Z
zengyawen 已提交
461 462 463 464 465 466 467 468 469 470 471 472 473 474
## PermissionOptions

| 名称 | 读写属性 | 类型   | 必填 | 描述   |
| ---- | -------- | ------ | ---- | ------ |
| pid  | 只读     | number | 否   | 进程id |
| uid  | 只读     | number | 否   | 用户id |

## PermissionRequestResult

| 名称        | 读写属性 | 类型           | 必填 | 描述               |
| ----------- | -------- | -------------- | ---- | ------------------ |
| requestCode | 只读     | number         | 是   | 用户传入的请求代码 |
| permissions | 只读     | Array\<string> | 是   | 用户传入的权限     |
| authResults | 只读     | Array\<number> | 是   | 求权限的结果       |