• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Ability Context
2
3> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
4> 本模块首批接口从API version 9开始支持。API 9当前为Canary版本,仅供使用,不保证接口可稳定调用。
5
6Ability的上下文环境,继承自Context。
7
8# 导入模块
9
10```js
11import Ability from '@ohos.application.Ability'
12```
13
14## 使用说明
15在使用AbilityContext的功能前,需要通过Ability子类实例获取。
16```js
17import Ability from '@ohos.application.Ability'
18class MainAbility extends Ability {
19    onWindowStageCreate(windowStage) {
20        let context = this.context;
21    }
22}
23```
24
25## 属性
26
27**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
28
29| 名称                  | 参数类型        | 可读    | 可写    | 描述                                 |
30| --------------------- | --------------- | ------ | ------- | ----------------------------------- |
31| config                | Configuration   | 是     | 否      | 显示的配置信息。                      |
32| abilityInfo           | AbilityInfo   | 是     | 否      | Abilityinfo相关信息。                  |
33| currentHapModuleInfo  | HapModuleInfo   | 是     | 否      | 当前hap包的信息。                    |
34
35
36## startAbility
37
38startAbility(want: Want, callback: AsyncCallback<void>): void
39
40启动Ability。
41
42**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
43
44**参数**:
45
46| 参数名 | 类型 | 必填 | 说明 |
47| -------- | -------- | -------- | -------- |
48| want | [Want](js-apis-featureAbility.md#Want) | 是 | 启动Ability的want信息。 |
49| callback | AsyncCallback<void> | 是 | callback形式返回启动结果。 |
50
51**示例**:
52
53```js
54var want = {
55  "deviceId": "",
56  "bundleName": "com.extreme.test",
57  "abilityName": "com.extreme.test.MainAbility"
58};
59this.context.startAbility(want, (error) => {
60    console.log("error.code = " + error.code)
61})
62```
63
64## startAbility
65
66startAbility(want: Want, options: StartOptions, callback: AsyncCallback<void>): void
67
68启动Ability(callback形式)。
69
70**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
71
72**参数**:
73
74| 参数名 | 类型 | 必填 | 说明 |
75| -------- | -------- | -------- | -------- |
76| want | [Want](js-apis-featureAbility.md#Want)  | 是 | 启动Ability的want信息。 |
77| options | StartOptions | 是 | 启动Ability所携带的参数。 |
78| callback | AsyncCallback<void> | 是 | callback形式返回启动结果。 |
79
80**示例**:
81
82```js
83var want = {
84  "deviceId": "",
85  "bundleName": "com.extreme.test",
86  "abilityName": "com.extreme.test.MainAbility"
87};
88var options = {
89  windowMode: 0,
90};
91this.context.startAbility(want, options, (error) => {
92    console.log("error.code = " + error.code)
93})
94```
95
96
97## startAbility
98
99startAbility(want: Want, options: StartOptions): Promise<void>
100
101启动Ability(Promise形式)。
102
103**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
104
105**参数**:
106
107| 参数名 | 类型 | 必填 | 说明 |
108| -------- | -------- | -------- | -------- |
109| want | [Want](js-apis-featureAbility.md#Want) | 是 | 启动Ability的want信息。 |
110| options | StartOptions | 是 | 启动Ability所携带的参数。 |
111
112**返回值**:
113
114| 类型 | 说明 |
115| -------- | -------- |
116| Promise<void> | Promise形式返回启动结果。 |
117
118**示例**:
119```js
120var want = {
121  "deviceId": "",
122  "bundleName": "com.extreme.test",
123  "abilityName": "com.extreme.test.MainAbility"
124};
125var options = {
126  windowMode: 0,
127};
128this.context.startAbility(want, options)
129.then(() => {
130    console.log('Operation successful.')
131}).catch((error) => {
132    console.log('Operation failed.');
133})
134```
135
136## startAbilityByCall
137
138startAbilityByCall(want: Want): Promise<Caller>
139
140获取指定通用组件服务端的caller通信接口, 并且将指定通用组件服务端拉起并切换到后台。
141
142**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
143
144**参数**:
145
146| 参数名 | 类型 | 必填 | 说明 |
147| -------- | -------- | -------- | -------- |
148| want | [Want](js-apis-featureAbility.md#Want) | 是 | 传入需要启动的ability的信息,包含ability名称、包名、设备ID,设备ID缺省或为空表示启动本地ability。 |
149
150**返回值**:
151
152| 类型 | 说明 |
153| -------- | -------- |
154| Promise<Caller> | 获取要通讯的caller对象。 |
155
156**示例**:
157
158```js
159import Ability from '@ohos.application.Ability';
160var caller;
161export default class MainAbility extends Ability {
162    onWindowStageCreate(windowStage) {
163        this.context.startAbilityByCall({
164            bundleName: "com.example.myservice",
165            abilityName: "com.example.myservice.MainAbility",
166            deviceId: ""
167        }).then((obj) => {
168            caller = obj;
169            console.log('Caller GetCaller Get ' + call);
170        }).catch((e) => {
171            console.log('Caller GetCaller error ' + e);
172        });
173    }
174}
175```
176
177## startAbilityWithAccount
178
179startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\<void>): void
180
181通过账户启动Ability(callback形式)。
182
183**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
184
185**参数**:
186
187| 参数名 | 类型 | 必填 | 说明 |
188| -------- | -------- | -------- | -------- |
189| want | [Want](js-apis-featureAbility.md#Want) | 是 | 启动Ability的want信息。 |
190| accountId | number                   | 是 | 账户ID。                  |
191| callback | AsyncCallback&lt;void&gt; | 是 | callback形式返回启动结果。 |
192
193**示例**:
194
195```js
196var want = {
197  "deviceId": "",
198  "bundleName": "com.extreme.test",
199  "abilityName": "com.extreme.test.MainAbility"
200};
201var accountId = 11;
202this.context.startAbility(want, accountId, (error) => {
203    console.log("error.code = " + error.code)
204})
205```
206
207## startAbilityWithAccount
208
209startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback\<void>): void
210
211通过账户启动Ability(callback形式)。
212
213**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
214
215**参数**:
216
217| 参数名 | 类型 | 必填 | 说明 |
218| -------- | -------- | -------- | -------- |
219| want | [Want](js-apis-featureAbility.md#Want)  | 是 | 启动Ability的want信息。 |
220| accountId | number                   | 是 | 账户ID。                  |
221| options | StartOptions | 是 | 启动Ability所携带的参数。 |
222| callback | AsyncCallback&lt;void&gt; | 是 | callback形式返回启动结果。 |
223
224**示例**:
225
226```js
227var want = {
228  "deviceId": "",
229  "bundleName": "com.extreme.test",
230  "abilityName": "com.extreme.test.MainAbility"
231};
232var options = {
233  windowMode: 0,
234};
235var accountId = 11;
236this.context.startAbility(want, accountId, options, (error) => {
237    console.log("error.code = " + error.code)
238})
239```
240
241
242## startAbilityWithAccount
243
244startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\<void>
245
246通过账户启动Ability(Promise形式)。
247
248**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
249
250**参数**:
251
252| 参数名 | 类型 | 必填 | 说明 |
253| -------- | -------- | -------- | -------- |
254| want | [Want](js-apis-featureAbility.md#Want) | 是 | 启动Ability的want信息。 |
255| accountId | number                   | 是 | 账户ID。                  |
256| options | StartOptions | 否 | 启动Ability所携带的参数。 |
257
258**返回值**:
259
260| 类型 | 说明 |
261| -------- | -------- |
262| Promise&lt;void&gt; | Promise形式返回启动结果。 |
263
264**示例**:
265```js
266var want = {
267  "deviceId": "",
268  "bundleName": "com.extreme.test",
269  "abilityName": "com.extreme.test.MainAbility"
270};
271var options = {
272  windowMode: 0,
273};
274var accountId = 11;
275this.context.startAbility(want, accountId, options)
276.then(() => {
277    console.log('Operation successful.')
278}).catch((error) => {
279    console.log('Operation failed.');
280})
281```
282
283## startAbilityForResult
284
285startAbilityForResult(want: Want, callback: AsyncCallback&lt;AbilityResult&gt;): void
286
287启动Ability并在结束的时候返回执行结果(callback形式)。
288
289**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
290
291**参数**:
292
293| 参数名 | 类型 | 必填 | 说明 |
294| -------- | -------- | -------- | -------- |
295| want |[Want](js-apis-featureAbility.md#Want) | 是 | 启动Ability的want信息。 |
296| callback | AsyncCallback&lt;[AbilityResult](js-apis-featureAbility.md#AbilityResult)&gt; | 是 | 执行结果回调函数。 |
297
298**示例**:
299
300```js
301this.context.startAbilityForResult(
302    {bundleName: "com.extreme.myapplication", abilityName: "MainAbilityDemo2"},
303    (error, result) => {
304      console.log("startAbilityForResult AsyncCallback is called, error.code = " + error.code)
305      console.log("startAbilityForResult AsyncCallback is called, result.resultCode = " + result.resultCode)
306    }
307);
308```
309
310## startAbilityForResult
311
312startAbilityForResult(want: Want, options: StartOptions, callback: AsyncCallback&lt;AbilityResult&gt;): void
313
314启动Ability并在结束的时候返回执行结果(callback形式)。
315
316**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
317
318**参数**:
319
320| 参数名 | 类型 | 必填 | 说明 |
321| -------- | -------- | -------- | -------- |
322| want |[Want](js-apis-featureAbility.md#Want) | 是 | 启动Ability的want信息。 |
323| options | StartOptions | 是 | 启动Ability所携带的参数。 |
324| callback | AsyncCallback&lt;[AbilityResult](js-apis-featureAbility.md#AbilityResult)&gt; | 是 | 执行结果回调函数。 |
325
326**示例**:
327
328```js
329var options = {
330  windowMode: 0,
331};
332this.context.startAbilityForResult(
333    {bundleName: "com.extreme.myapplication", abilityName: "MainAbilityDemo2"}, options,
334    (error, result) => {
335      console.log("startAbilityForResult AsyncCallback is called, error.code = " + error.code)
336      console.log("startAbilityForResult AsyncCallback is called, result.resultCode = " + result.resultCode)
337    }
338);
339```
340
341
342## startAbilityForResult
343
344startAbilityForResult(want: Want, options: StartOptions): Promise&lt;AbilityResult&gt;;
345
346启动Ability并在结束的时候返回执行结果(Promise形式)。
347
348**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
349
350**参数**:
351
352| 参数名 | 类型 | 必填 | 说明 |
353| -------- | -------- | -------- | -------- |
354| want | [Want](js-apis-featureAbility.md#Want) | 是 | 启动Ability的want信息。 |
355| options | StartOptions | 否 | 启动Ability所携带的参数。 |
356
357**返回值**:
358
359| 类型 | 说明 |
360| -------- | -------- |
361| Promise&lt;[AbilityResult](js-apis-featureAbility.md#AbilityResult)&gt; | Promise形式返回执行结果。 |
362
363**示例**:
364```js
365var options = {
366  windowMode: 0,
367};
368this.context.startAbilityForResult({bundleName: "com.extreme.myapplication", abilityName: "MainAbilityDemo2"}, options).then((result) => {
369    console.log("startAbilityForResult Promise.resolve is called, result.resultCode = " + result.resultCode)
370}, (error) => {
371    console.log("startAbilityForResult Promise.Reject is called, error.code = " + error.code)
372})
373```
374
375## startAbilityForResultWithAccount
376
377startAbilityForResultWithAccount(want: Want, accountId: number, callback: AsyncCallback\<AbilityResult>): void
378
379通过账户启动Ability并在结束的时候返回执行结果(callback形式)。
380
381**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
382
383**参数**:
384
385| 参数名 | 类型 | 必填 | 说明 |
386| -------- | -------- | -------- | -------- |
387| want |[Want](js-apis-featureAbility.md#Want) | 是 | 启动Ability的want信息。 |
388| accountId | number                   | 是 | 账户ID。                  |
389| callback | AsyncCallback&lt;[AbilityResult](js-apis-featureAbility.md#AbilityResult)&gt; | 是 | 执行结果回调函数。 |
390
391**示例**:
392
393```js
394var accountId = 111;
395this.context.startAbilityForResult(
396    {bundleName: "com.extreme.myapplication", abilityName: "MainAbilityDemo2"},
397    accountId,
398    (error, result) => {
399      console.log("startAbilityForResult AsyncCallback is called, error.code = " + error.code)
400      console.log("startAbilityForResult AsyncCallback is called, result.resultCode = " + result.resultCode)
401    }
402);
403```
404
405## startAbilityForResultWithAccount
406
407startAbilityForResultWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback\<void>): void
408
409通过账户启动Ability并在结束的时候返回执行结果(callback形式)。
410
411**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
412
413**参数**:
414
415| 参数名 | 类型 | 必填 | 说明 |
416| -------- | -------- | -------- | -------- |
417| want |[Want](js-apis-featureAbility.md#Want) | 是 | 启动Ability的want信息。 |
418| accountId | number                   | 是 | 账户ID。                  |
419| options | StartOptions | 是 | 启动Ability所携带的参数。 |
420| callback | AsyncCallback&lt;void&gt; | 是 | 执行结果回调函数。 |
421
422**示例**:
423
424```js
425var options = {
426  windowMode: 0,
427};
428var accountId = 111;
429this.context.startAbilityForResult(
430    {bundleName: "com.extreme.myapplication", abilityName: "MainAbilityDemo2"},
431    accountId,
432    options,
433    () => {
434      console.log("startAbilityForResult AsyncCallback is called")
435    }
436);
437```
438
439## startAbilityForResultWithAccount
440
441startAbilityForResultWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\<AbilityResult>;
442
443通过账户启动Ability并在结束的时候返回执行结果(Promise形式)。
444
445**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
446
447**参数**:
448
449| 参数名 | 类型 | 必填 | 说明 |
450| -------- | -------- | -------- | -------- |
451| want | [Want](js-apis-featureAbility.md#Want) | 是 | 启动Ability的want信息。 |
452| accountId | number                   | 是 | 账户ID。                  |
453| options | StartOptions | 是 | 启动Ability所携带的参数。 |
454
455**返回值**:
456
457| 类型 | 说明 |
458| -------- | -------- |
459| Promise&lt;[AbilityResult](js-apis-featureAbility.md#AbilityResult)&gt; | Promise形式返回执行结果。 |
460
461**示例**:
462
463```js
464var accountId = 111;
465var options = {
466  windowMode: 0,
467};
468this.context.startAbilityForResult({bundleName: "com.extreme.myapplication", abilityName: "MainAbilityDemo2"}, accountId, options).then((result) => {
469    console.log("startAbilityForResult Promise.resolve is called, result.resultCode = " + result.resultCode)
470}, (error) => {
471    console.log("startAbilityForResult Promise.Reject is called, error.code = " + error.code)
472})
473```
474
475## terminateSelf
476
477terminateSelf(callback: AsyncCallback&lt;void&gt;): void
478
479停止Ability自身(callback形式)。
480
481**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
482
483**参数**:
484
485| 参数名 | 类型 | 必填 | 说明 |
486| -------- | -------- | -------- | -------- |
487| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数,返回接口调用是否成功的结果。 |
488
489**示例**:
490
491```js
492this.context.terminateSelf((err) => {
493    console.log('terminateSelf result:' + JSON.stringify(err));
494});
495```
496
497## terminateSelf
498
499terminateSelf(): Promise&lt;void&gt;
500
501停止Ability自身(Promise形式)。
502
503**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
504
505**返回值**:
506
507| 类型 | 说明 |
508| -------- | -------- |
509| Promise&lt;void&gt; | 返回一个Promise,包含接口的结果。 |
510
511**示例**:
512
513```js
514this.context.terminateSelf(want).then(() => {
515    console.log('success:');
516}).catch((error) => {
517    console.log('failed:' + JSON.stringify(error));
518});
519```
520
521## terminateSelfWithResult
522
523terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback&lt;void&gt;): void
524
525停止Ability,并返回给调用startAbilityForResult 接口调用方的相关信息(callback形式)。
526
527**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
528
529**参数**:
530
531| 参数名 | 类型 | 必填 | 说明 |
532| -------- | -------- | -------- | -------- |
533| parameter | [AbilityResult](js-apis-featureAbility.md#AbilityResult) | 是 | 返回给调用startAbilityForResult&nbsp;接口调用方的相关信息。 |
534| callback | AsyncCallback&lt;void&gt; | 是 | callback形式返回停止结果。 |
535
536**示例**:
537
538```js
539this.context.terminateSelfWithResult(
540    {
541        want: {bundleName: "com.extreme.myapplication", abilityName: "MainAbilityDemo"},
542        resultCode: 100
543    }, (error) => {
544        console.log("terminateSelfWithResult is called = " + error.code)
545    }
546);
547```
548
549
550## terminateSelfWithResult
551
552terminateSelfWithResult(parameter: AbilityResult): Promise&lt;void&gt;
553
554停止Ability,并返回给调用startAbilityForResult 接口相关信息(Promise形式)。
555
556**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
557
558**参数**:
559| 参数名 | 类型 | 必填 | 说明 |
560| -------- | -------- | -------- | -------- |
561| parameter | [AbilityResult](js-apis-featureAbility.md#AbilityResult) | 是 | 返回给startAbilityForResult&nbsp;调用方的信息。 |
562
563**返回值**:
564| 类型 | 说明 |
565| -------- | -------- |
566| Promise&lt;void&gt; | promise形式返回停止结果。 |
567
568**示例**:
569```js
570this.context.terminateSelfWithResult(
571{
572    want: {bundleName: "com.extreme.myapplication", abilityName: "MainAbilityDemo"},
573    resultCode: 100
574}).then(() => {
575    console.log("terminateSelfWithResult")
576})
577```
578
579## connectAbility
580
581connectAbility(want: Want, options: ConnectOptions): number
582
583使用AbilityInfo.AbilityType.SERVICE模板将当前能力连接到一个能力。
584
585**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
586
587**参数**:
588
589| 参数名 | 类型 | 必填 | 说明 |
590| -------- | -------- | -------- | -------- |
591| want | [Want](js-apis-featureAbility.md#Want) | 是 | 启动Ability的want信息。 |
592| options | ConnectOptions | 是 | 连接的远端对象实例 |
593
594**返回值**:
595
596| 类型 | 说明 |
597| -------- | -------- |
598| number | 返回Ability连接的结果code。 |
599
600**示例**:
601```js
602var want = {
603  "deviceId": "",
604  "bundleName": "com.extreme.test",
605  "abilityName": "com.extreme.test.MainAbility"
606}
607var options = {
608  onConnect: (elementName, remote) => {
609    console.log('connectAbility onConnect, elementName: ' + elementName + ', remote: ' + remote)
610  },
611  onDisconnect: (elementName) => {
612    console.log('connectAbility onDisconnect, elementName: ' + elementName)
613  },
614  onFailed: (code) => {
615    console.log('connectAbility onFailed, code: ' + code)
616  }
617}
618let result = this.context.connectAbility(want, options) {
619  console.log('code: ' + result)
620}
621```
622
623## connectAbilityWithAccount
624
625connectAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions): number
626
627使用AbilityInfo.AbilityType.SERVICE模板和账户ID将当前能力连接到一个能力。
628
629**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
630
631**参数**:
632
633| 参数名 | 类型 | 必填 | 说明 |
634| -------- | -------- | -------- | -------- |
635| want | [Want](js-apis-featureAbility.md#Want) | 是 | 启动Ability的want信息。 |
636| accountId | number | 是 | 账户ID |
637| options | ConnectOptions | 是 | 连接的远端对象实例 |
638
639**返回值**:
640
641| 类型 | 说明 |
642| -------- | -------- |
643| number | 连接Ability的代码 |
644
645**示例**:
646```js
647var want = {
648  "deviceId": "",
649  "bundleName": "com.extreme.test",
650  "abilityName": "com.extreme.test.MainAbility"
651}
652var accountId = 111;
653var options = {
654  onConnect: (elementName, remote) => {
655    console.log('connectAbility onConnect, elementName: ' + elementName + ', remote: ' + remote)
656  },
657  onDisconnect: (elementName) => {
658    console.log('connectAbility onDisconnect, elementName: ' + elementName)
659  },
660  onFailed: (code) => {
661    console.log('connectAbility onFailed, code: ' + code)
662  }
663}
664this.context.connectAbility(want, accountId, options) {
665  console.log('code: ' + code)
666}
667```
668
669## disconnectAbility
670
671disconnectAbility(connection: number, callback:AsyncCallback\<void>): void
672
673断开Ability连接(callback形式)。
674
675**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
676
677**参数**:
678
679| 参数名 | 类型 | 必填 | 说明 |
680| -------- | -------- | -------- | -------- |
681| connection | number | 是 | 连接的Ability的编号。 |
682| callback | AsyncCallback&lt;void&gt; | 是 | 断开Ability连接的回调函数。 |
683
684**示例**:
685
686```js
687var connection = 111;
688this.context.disconnectAbility(connection, () => {
689  console.log('disconnection')
690})
691```
692
693## disconnectAbility
694
695disconnectAbility(connection: number): Promise\<void>
696
697断开Ability连接(Promise形式)。
698
699**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
700
701**参数**:
702
703| 参数名 | 类型 | 必填 | 说明 |
704| -------- | -------- | -------- | -------- |
705| connection | number | 是 | 连接的Ability的编号。 |
706
707**返回值**:
708
709| 类型 | 说明 |
710| -------- | -------- |
711| Promise&lt;void&gt; | 返回一个Promise。 |
712
713**示例**:
714
715```js
716var connection = 111;
717this.context.disconnectAbility(connection).then(() => {
718  console.log('disconnect success')
719}).catch((err) => {
720  console.log('disconnect failed')
721})
722```
723
724## setMissionLabel
725
726setMissionLabel(label: string, callback:AsyncCallback&lt;void&gt;): void
727
728设置ability在任务中显示的名称(callback形式)。
729
730**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
731
732**参数**:
733
734| 参数名 | 类型 | 必填 | 说明 |
735| -------- | -------- | -------- | -------- |
736| label | string | 是 | 显示名称。 |
737| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数,返回接口调用是否成功的结果。 |
738
739**示例**:
740
741```js
742this.context.setMissionLabel("test",(result) => {
743    console.log('requestPermissionsFromUserresult:' + JSON.stringify(result));
744});
745```
746
747
748## setMissionLabel
749
750setMissionLabel(label: string): Promise\<void>
751
752设置ability在任务中显示的名称(Promise形式)。
753
754**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
755
756**参数**:
757
758| 参数名 | 类型 | 必填 | 说明 |
759| -------- | -------- | -------- | -------- |
760| label | string | 是 | 显示名称。 |
761
762**返回值**:
763
764| 类型 | 说明 |
765| -------- | -------- |
766| Promise&lt;void&gt; | 返回一个Promise,包含接口的结果。 |
767
768**示例**:
769
770```js
771this.context.setMissionLabel("test").then(() => {
772    console.log('success:');
773}).catch((error) => {
774    console.log('failed:' + JSON.stringify(error));
775});
776```
777
778## requestPermissionsFromUser
779
780requestPermissionsFromUser(permissions: Array&lt;string&gt;, requestCallback: AsyncCallback&lt;PermissionRequestResult&gt;) : void
781
782拉起弹窗请求用户授权(callback形式)。
783
784**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
785
786**参数**:
787
788| 参数名 | 类型 | 必填 | 说明 |
789| -------- | -------- | -------- | -------- |
790| permissions | Array&lt;string&gt; | 是 | 权限列表。 |
791| callback | AsyncCallback&lt;PermissionRequestResult&gt; | 是 | 回调函数,返回接口调用是否成功的结果。 |
792
793**示例**:
794
795```js
796this.context.requestPermissionsFromUser(permissions,(result) => {
797    console.log('requestPermissionsFromUserresult:' + JSON.stringify(result));
798});
799```
800
801
802## requestPermissionsFromUser
803
804requestPermissionsFromUser(permissions: Array&lt;string&gt;) : Promise&lt;PermissionRequestResult&gt;
805
806拉起弹窗请求用户授权。通过Promise返回结果。
807
808**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
809
810**参数**:
811
812| 参数名 | 类型 | 必填 | 说明 |
813| -------- | -------- | -------- | -------- |
814| permissions | Array&lt;string&gt; | 是 | 权限列表。 |
815
816**返回值**:
817
818| 类型 | 说明 |
819| -------- | -------- |
820| Promise&lt;PermissionRequestResult&gt; | 返回一个Promise,包含接口的结果。 |
821
822**示例**:
823
824```js
825this.context.requestPermissionsFromUser(permissions).then((data) => {
826    console.log('success:' + JSON.stringify(data));
827}).catch((error) => {
828    console.log('failed:' + JSON.stringify(error));
829});
830```
831
832## restoreWindowStage
833
834restoreWindowStage(contentStorage: ContentStorage) : void
835
836恢复Ability延续中的窗口阶段数据。
837
838**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
839
840**参数**:
841
842| 参数名 | 类型 | 必填 | 说明 |
843| -------- | -------- | -------- | -------- |
844| contentStorage | ContentStorage | 是 | 用于恢复窗口阶段的存储数据。 |
845
846**示例**:
847
848```js
849var contentStorage = {
850  "link": 'link',
851};
852this.context.restoreWindowStage(contentStorage);
853```
854