1# Ability Context 2 3>  **说明:** 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<void> | 是 | 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<void> | 是 | 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<void> | 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<AbilityResult>): 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<[AbilityResult](js-apis-featureAbility.md#AbilityResult)> | 是 | 执行结果回调函数。 | 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<AbilityResult>): 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<[AbilityResult](js-apis-featureAbility.md#AbilityResult)> | 是 | 执行结果回调函数。 | 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<AbilityResult>; 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<[AbilityResult](js-apis-featureAbility.md#AbilityResult)> | 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<[AbilityResult](js-apis-featureAbility.md#AbilityResult)> | 是 | 执行结果回调函数。 | 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<void> | 是 | 执行结果回调函数。 | 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<[AbilityResult](js-apis-featureAbility.md#AbilityResult)> | 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<void>): void 478 479停止Ability自身(callback形式)。 480 481**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 482 483**参数**: 484 485| 参数名 | 类型 | 必填 | 说明 | 486| -------- | -------- | -------- | -------- | 487| callback | AsyncCallback<void> | 是 | 回调函数,返回接口调用是否成功的结果。 | 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<void> 500 501停止Ability自身(Promise形式)。 502 503**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 504 505**返回值**: 506 507| 类型 | 说明 | 508| -------- | -------- | 509| Promise<void> | 返回一个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<void>): 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 接口调用方的相关信息。 | 534| callback | AsyncCallback<void> | 是 | 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<void> 553 554停止Ability,并返回给调用startAbilityForResult 接口相关信息(Promise形式)。 555 556**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 557 558**参数**: 559| 参数名 | 类型 | 必填 | 说明 | 560| -------- | -------- | -------- | -------- | 561| parameter | [AbilityResult](js-apis-featureAbility.md#AbilityResult) | 是 | 返回给startAbilityForResult 调用方的信息。 | 562 563**返回值**: 564| 类型 | 说明 | 565| -------- | -------- | 566| Promise<void> | 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<void> | 是 | 断开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<void> | 返回一个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<void>): void 727 728设置ability在任务中显示的名称(callback形式)。 729 730**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 731 732**参数**: 733 734| 参数名 | 类型 | 必填 | 说明 | 735| -------- | -------- | -------- | -------- | 736| label | string | 是 | 显示名称。 | 737| callback | AsyncCallback<void> | 是 | 回调函数,返回接口调用是否成功的结果。 | 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<void> | 返回一个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<string>, requestCallback: AsyncCallback<PermissionRequestResult>) : void 781 782拉起弹窗请求用户授权(callback形式)。 783 784**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 785 786**参数**: 787 788| 参数名 | 类型 | 必填 | 说明 | 789| -------- | -------- | -------- | -------- | 790| permissions | Array<string> | 是 | 权限列表。 | 791| callback | AsyncCallback<PermissionRequestResult> | 是 | 回调函数,返回接口调用是否成功的结果。 | 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<string>) : Promise<PermissionRequestResult> 805 806拉起弹窗请求用户授权。通过Promise返回结果。 807 808**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 809 810**参数**: 811 812| 参数名 | 类型 | 必填 | 说明 | 813| -------- | -------- | -------- | -------- | 814| permissions | Array<string> | 是 | 权限列表。 | 815 816**返回值**: 817 818| 类型 | 说明 | 819| -------- | -------- | 820| Promise<PermissionRequestResult> | 返回一个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