# 元能力å系统JS APIå˜æ›´Changelog OpenHarmony 3.2.10.1(Mr)版本相较于OpenHarmony 3.2.beta4版本,元能力å系统的APIå˜æ›´å¦‚下 ## cl.ability.1 接å£è¿ç§» abilityå系统UIAbilityContext的接å£requestPermissionsFromUserè¿ç§»åˆ°securityå系统: 之剿ƒé™å¼¹çª—应用是基于UIAbility实现的,需è¦å€ŸåŠ©äºŽUIAbilityContextçš„startAbilityForResultæŽ¥å£æŠŠæŽˆæƒç»“果带回给调用方,故把requestPermissionsFromUseræŽ¥å£æš‚æ—¶æ”¾åœ¨UIAbilityContextä¸ã€‚现在æƒé™å¼¹çª—应用切æ¢ä¸ºåŸºäºŽServiceExtensionAbility实现,ä¸å†éœ€è¦å€ŸåŠ©UIAbilityContextçš„startAbilityForResult接å£ï¼Œå› æ¤æŠŠrequestPermissionsFromUser接å£è¿ç§»åˆ°securityå系统。 å¼€å‘è€…éœ€è¦æ ¹æ®ä»¥ä¸‹è¯´æ˜Žå¯¹åº”用进行适é…。 **å˜æ›´å½±å“** å½±å“API9版本的JS接å£ï¼Œåº”用需è¦è¿›è¡Œé€‚é…æ‰å¯ä»¥åœ¨æ–°ç‰ˆæœ¬SDK环境æ£å¸¸å®žçŽ°åŠŸèƒ½ã€‚ **关键的接å£/ç»„ä»¶å˜æ›´** | 模å—å | ç±»å | 方法/属性/枚举/å¸¸é‡ | å˜æ›´ç±»åž‹ | | ------------------------- | ------------------- | ------------------------------------------------------------ | -------- | | application/UIAbilityContext | UIAbilityContext | requestPermissionsFromUser(permissions: Array<string>, requestCallback: AsyncCallback<PermissionRequestResult>): void; | åˆ é™¤ | | application/UIAbilityContext | UIAbilityContext | requestPermissionsFromUser(permissions: Array<string>): Promise<PermissionRequestResult>; | åˆ é™¤ | | @ohos.abilityAccessCtrl | AtManager | requestPermissionsFromUser(context: Context, permissions: Array<Permissions>, requestCallback: AsyncCallback<PermissionRequestResult>) : void; | 新增 | | @ohos.abilityAccessCtrl | AtManager | requestPermissionsFromUser(context: Context, permissions: Array<Permissions>) : Promise<PermissionRequestResult>; | 新增 | **适酿Œ‡å¯¼** 应用ä¸è°ƒç”¨requestPermissionsFromUser拉起æƒé™å¼¹çª—应用å¯å‚考下列代ç Stage模型下的示例: ```ts import abilityAccessCtrl from '@ohos.abilityAccessCtrl.d.ts'; //UIAbilityçš„onWindowStageCreate生命周期 onWindowStageCreate() { let AtManager = abilityAccessCtrl.createAtManager(); //requestPermissionsFromUserä¼šåˆ¤æ–æƒé™çš„æŽˆæƒçŠ¶æ€æ¥å†³å®šæ˜¯å¦å”¤èµ·å¼¹çª— AtManager.requestPermissionsFromUser(this.context, ["ohos.permission.MANAGE_DISPOSED_APP_STATUS"]).then((data) => { console.log("data type:" + typeof(data)); console.log("data:" + data); console.log("data permissions:" + data.permissions); console.log("data result:" + data.authResults); }).catch((err) => { console.error('Failed to start ability', err.code); }) } ``` ## cl.ability.2 åˆ é™¤æ ‡è®°ä¸ºåºŸå¼ƒçš„API9æŽ¥å£ [å…ƒèƒ½åŠ›å¼‚å¸¸å¤„ç†æ•´æ”¹](../OpenHarmony_3.2.8.3/changelogs-ability.md)将部分API9æŽ¥å£æ ‡è®°ä¸ºäº†åºŸå¼ƒï¼Œæ ¹æ®OpenHarmony接å£è§„范,需è¦åˆ é™¤æ ‡è®°ä¸ºåºŸå¼ƒçš„API9接å£ã€‚ **å˜æ›´å½±å“** 基于æ¤å‰ç‰ˆæœ¬å¼€å‘的应用,需è¦å°†è¢«åˆ é™¤çš„æŽ¥å£æ›¿æ¢ä¸ºæ–°æŽ¥å£ï¼Œå¦åˆ™ä¼šå½±å“应用编译。 **关键接å£/ç»„ä»¶å˜æ›´** æŽ¥å£æ–‡ä»¶è¢«åˆ 除: | è¢«åˆ é™¤æŽ¥å£ | æ–°æŽ¥å£ | | ----------------------------------------------- | ----------------------------------------------- | | @ohos.application.Ability.d.ts | @ohos.app.ability.UIAbility.d.ts | | @ohos.application.AbilityConstant.d.ts | @ohos.app.ability.AbilityConstant.d.ts | | @ohos.application.AbilityLifecycleCallback.d.ts | @ohos.app.ability.AbilityLifecycleCallback.d.ts | | @ohos.application.AbilityStage.d.ts | @ohos.app.ability.AbilityStage.d.ts | | @ohos.application.EnvironmentCallback.d.ts | @ohos.app.ability.EnvironmentCallback.d.ts | | @ohos.application.ExtensionAbility.d.ts | @ohos.app.ability.ExtensionAbility.d.ts | | @ohos.application.FormExtension.d.ts | @ohos.app.form.FormExtensionAbility.d.ts | | @ohos.application.ServiceExtensionAbility.d.ts | @ohos.app.ability.ServiceExtensionAbility.d.ts | | @ohos.application.StartOptions.d.ts | @ohos.app.ability.StartOptions.d.ts | | @ohos.application.context.d.ts | @ohos.app.ability.common.d.ts | | @ohos.application.errorManager.d.ts | @ohos.app.ability.errorManager.d.ts | 接å£ã€å±žæ€§è¢«åˆ 除: - @ohos.application.Configuration.d.ts - Configuration çš„ directionã€screenDensityã€displayIdã€hasPointerDevice è¢«åˆ é™¤ã€‚å¯ä»¥ä½¿ç”¨ @ohos.app.ability.Configuration.d.ts çš„ Configuration替æ¢ã€‚ - @ohos.application.ConfigurationConstant.d.ts - 枚举 Direction å’Œ ScreenDensity è¢«åˆ é™¤ã€‚å¯ä»¥ä½¿ç”¨ @ohos.app.ability.ConfigurationConstant.d.ts 的枚举 Direction å’Œ ScreenDensity 替æ¢ã€‚ - @ohos.application.abilityManager.d.ts - 方法 getExtensionRunningInfos å’Œ getTopAbility è¢«åˆ é™¤ã€‚å¯ä»¥ä½¿ç”¨ @ohos.app.ability.abilityManager.d.ts çš„åŒå方法替æ¢ã€‚ - @ohos.application.appManager.d.ts - 枚举 ApplicationState å’Œ ProcessState è¢«åˆ é™¤ã€‚å¯ä»¥ä½¿ç”¨ @ohos.app.ability.appManager.d.ts 的枚举 ApplicationState å’Œ ProcessState 替æ¢ã€‚ - 方法 registerApplicationStateObserver å’Œ getProcessRunningInformationè¢«åˆ é™¤ã€‚å¯ä»¥ä½¿ç”¨ @ohos.app.ability.appManager.d.ts çš„åŒå方法替æ¢ã€‚ - @ohos.application.formHost.d.ts - 方法 shareForm å’Œ notifyFormsPrivacyProtected è¢«åˆ é™¤ã€‚å¯ä»¥ä½¿ç”¨ @ohos.app.form.formHost.d.ts çš„åŒå方法替æ¢ã€‚ - @ohos.application.formInfo.d.ts - 枚举 FormType çš„ eTS è¢«åˆ é™¤ï¼Œå¯ä»¥ä½¿ç”¨ @ohos.app.form.formInfo.d.ts çš„ FormType ä¸çš„ eTS 替æ¢ã€‚ - 枚举 FormParam çš„ IDENTITY_KEYã€BUNDLE_NAME_KEYã€ABILITY_NAME_KEYã€DEVICE_ID_KEY è¢«åˆ é™¤ï¼Œå¯ä»¥ä½¿ç”¨ @ohos.app.form.formInfo.d.ts çš„ FormParam ä¸çš„åŒå枚举替æ¢ã€‚ - æŽ¥å£ FormInfoFilter è¢«åˆ é™¤ã€‚å¯ä»¥ä½¿ç”¨ @ohos.app.form.formInfo.d.ts çš„ FormInfoFilter 替æ¢ã€‚ - 枚举 FormDimension è¢«åˆ é™¤ã€‚å¯ä»¥ä½¿ç”¨ @ohos.app.form.formInfo.d.ts çš„ FormDimension 替æ¢ã€‚ - 枚举 VisibilityType è¢«åˆ é™¤ã€‚å¯ä»¥ä½¿ç”¨ @ohos.app.form.formInfo.d.ts çš„ VisibilityType 替æ¢ã€‚ - @ohos.wantAgent.d.ts - 方法 trigger å’Œ getOperationType è¢«åˆ é™¤ã€‚å¯ä»¥ä½¿ç”¨ @ohos.app.ability.wantAgent.d.ts çš„åŒå方法替æ¢ã€‚ - application/ApplicationContext.d.ts - 方法 registerAbilityLifecycleCallbackã€unregisterAbilityLifecycleCallbackã€registerEnvironmentCallbackã€unregisterEnvironmentCallback è¢«åˆ é™¤ã€‚å¯ä»¥ä½¿ç”¨ onã€off 替æ¢ã€‚ - application/ServiceExtensionContext.d.ts - 方法 connectAbilityã€connectAbilityWithAccountã€disconnectAbility è¢«åˆ é™¤ã€‚å¯ä»¥ä½¿ç”¨ connectServiceExtensionAbilityã€connectServiceExtensionAbilityWithAccountã€disconnectServiceExtensionAbility 替æ¢ã€‚ - @ohos.application.FormExtension.d.ts - 生命周期onCreateã€onCastToNormalã€onUpdateã€onVisibilityChangeã€onEventã€onDestroyã€onAcquireFormStateã€onShare è¢«åˆ é™¤ã€‚å¯ä»¥ä½¿ç”¨@ohos.app.form.FormExtensionAbility.d.tsçš„onAddFormã€onCastToNormalFormã€onUpdateFormã€onChangeFormVisibilityã€onFormEventã€onRemoveFormã€onAcquireFormStateã€onShareForm - @ohos.application.abilityDelegatorRegistry.d.ts - 导出类 AbilityDelegatorã€AbilityDelegatorArgsã€AbilityMonitorã€ShellCmdResult è¢«åˆ é™¤ã€‚å¯ä»¥ä½¿ç”¨@ohos.app.ability.abilityDelegatorRegistry.d.tsä¸çš„åŒå导出类替æ¢ã€‚ - @ohos.application.abilityManager.d.ts - 导出类 AbilityRunningInfoã€ExtensionRunningInfo è¢«åˆ é™¤ã€‚å¯ä»¥ä½¿ç”¨@ohos.app.ability.abilityManager.d.tsä¸çš„åŒå导出类替æ¢ã€‚ - @ohos.application.appManager.d.ts - 导出类 AbilityStateDataã€AppStateDataã€ApplicationStateObserverã€ProcessRunningInfoã€ProcessRunningInformation è¢«åˆ é™¤ã€‚å¯ä»¥ä½¿ç”¨@ohos.app.ability.appManager.d.tsä¸çš„åŒå导出类替æ¢ã€‚ - @ohos.application.missionManager.d.ts - 导出类 MissionInfoã€MissionListenerã€MissionSnapshot è¢«åˆ é™¤ã€‚å¯ä»¥ä½¿ç”¨@ohos.app.ability.missionManager.d.tsä¸çš„åŒå导出类替æ¢ã€‚ - @ohos.wantAgent.d.ts - 导出类 TriggerInfoã€WantAgentInfo è¢«åˆ é™¤ã€‚å¯ä»¥ä½¿ç”¨@ohos.app.ability.wantAgent.d.tsä¸çš„åŒå导出类替æ¢ã€‚ **适酿Œ‡å¯¼** 如上所述,仅少数接å£ä¿®æ”¹äº†æŽ¥å£å的如注册回调函数(registerAbilityLifecycleCallbackã€unregisterAbilityLifecycleCallbackã€registerEnvironmentCallbackã€unregisterEnvironmentCallback)和连接æ–å¼€ ServiceExtensionAbility(connectAbilityã€connectAbilityWithAccountã€disconnectAbility),å¡ç‰‡ç”Ÿå‘½å‘¨æœŸç‰éœ€è¦æ›¿æ¢æˆæ–°çš„æŽ¥å£å。 ç»å¤§å¤šæ•°æŽ¥å£å¹³ç§»åˆ°äº†æ–°çš„namespaceä¸ï¼Œæ‰€ä»¥å¯ä»¥é€šè¿‡ä¿®æ”¹importæ¥è§£å†³é€‚é…问题: 如原先接å£ä½¿ç”¨äº†@ohos.application.Ability ```js import Ability from '@ohos.application.Ability'; ``` å¯ä»¥é€šè¿‡ç›´æŽ¥ä¿®æ”¹import,æ¥åˆ‡æ¢åˆ°æ–°çš„namespace上: ```js import Ability from '@ohos.app.ability.UIAbility'; ``` æ¤å¤–还需è¦é€‚é…异常处ç†ï¼Œå…·ä½“å‚考新接å£çš„æŽ¥å£æ–‡æ¡£ã€‚