diff --git a/zh-cn/application-dev/application-models/enterprise-extensionAbility.md b/zh-cn/application-dev/application-models/enterprise-extensionAbility.md new file mode 100644 index 0000000000000000000000000000000000000000..6abd36a83f1aadf50e5c062db5223442ff71a64c --- /dev/null +++ b/zh-cn/application-dev/application-models/enterprise-extensionAbility.md @@ -0,0 +1,118 @@ +# EnterpriseAdminExtensionAbilityå¼€å‘æŒ‡å— + +## EnterpriseAdminExtensionAbility简介 + +ä¼ä¸šè®¾å¤‡ç®¡ç†æ‰©å±•èƒ½åŠ›ï¼Œæ˜¯MDM应用必备组件。当开å‘者为ä¼ä¸šå¼€å‘MDM(Mobile Device Management)应用时,需继承EnterpriseAdminExtensionAbility,在EnterpriseAdminExtensionAbility实例ä¸å®žçŽ°MDM业务逻辑,EnterpriseAdminExtensionAbility实现了系统管ç†çŠ¶æ€å˜åŒ–通知功能,并定义了管ç†åº”用激活ã€åŽ»æ¿€æ´»ã€åº”用安装ã€å¸è½½äº‹ä»¶ç‰å›žè°ƒæŽ¥å£ã€‚ + +## 约æŸä¸Žé™åˆ¶ + +- **_功能é™åˆ¶_** + + 仅支æŒè®¾å¤‡ç®¡ç†å‘˜åº”用使用。 + + +## 场景:监å¬è®¾å¤‡ç®¡ç†å™¨æ¿€æ´»ã€åŽ»æ¿€æ´»ã€åº”用安装ã€å¸è½½äº‹ä»¶ + +### 概述 + +onAdminEnabled:由ä¼ä¸šç®¡ç†å‘˜æˆ–者员工部署MDM应用,激活设备管ç†å™¨ï¼Œç³»ç»Ÿé€šçŸ¥MDM应用已激活DeviceAdminæƒé™ã€‚MDM应用å¯åœ¨onAdminEnabled回调函数ä¸è¿›è¡Œåˆå§‹åŒ–ç–略设置。 + +onAdminDisabled:由系统或者员工去激活设备管ç†å™¨ï¼Œé€šçŸ¥åŽ»æ¿€æ´»DeviceAdminæƒé™ï¼Œåº”用å¯ä»¥é€šçŸ¥ä¼ä¸šç®¡ç†å‘˜è®¾å¤‡å·²è„±ç®¡ã€‚ + +onBundleAdded: ä¼ä¸šåº”用管ç†åœºæ™¯ä¸‹ï¼Œä¼ä¸šç®¡ç†å‘˜è®¢é˜…应用安装å¸è½½äº‹ä»¶ï¼Œç«¯ä¾§åº”用安装和å¸è½½äº‹ä»¶é€šçŸ¥MDM应用,MDM应用å¯ä»¥åœ¨å›žè°ƒå‡½æ•°ä¸è¿›è¡Œäº‹ä»¶ä¸ŠæŠ¥ï¼Œé€šçŸ¥ä¼ä¸šç®¡ç†å‘˜ã€‚ + +onBundleRemoved: ä¼ä¸šåº”用管ç†åœºæ™¯ä¸‹ï¼Œä¼ä¸šç®¡ç†å‘˜å–消订阅应用安装å¸è½½äº‹ä»¶ã€‚ + +### 接å£è¯´æ˜Ž + +| ç±»å | 接å£å称 | æè¿° | +| :------------------------------ | ----------------------------------------- | ---------------------------- | +| EnterpriseAdminExtensionAbility | onAdminDisabled(): void | 设备管ç†å™¨åº”用去激活回调方法 | +| EnterpriseAdminExtensionAbility | onBundleAdded(bundleName: string): void | 应用安装回调方法 | +| EnterpriseAdminExtensionAbility | onAdminEnabled(): void | 设备管ç†å™¨åº”用激活回调方法 | +| EnterpriseAdminExtensionAbility | onBundleRemoved(bundleName: string): void | 应用å¸è½½å›žè°ƒæ–¹æ³• | + +### å¼€å‘æ¥éª¤ + +å¼€å‘者在实现EnterpriseAdminExtensionAbility的时候,需先激活设备管ç†å‘˜åº”用,并在设备管ç†å‘˜åº”用的代ç 目录下新建ExtensionAbility,具体æ¥éª¤å¦‚下。 + +1. 在工程Module对应的ets目录下,å³é”®é€‰æ‹©â€œNew > Directoryâ€ï¼Œæ–°å»ºä¸€ä¸ªç›®å½•å¹¶å‘½å为EnterpriseExtAbility。 +2. 在EnterpriseExtAbility目录,å³é”®é€‰æ‹©â€œNew > TypeScript Fileâ€ï¼Œæ–°å»ºä¸€ä¸ªTypeScript文件并命å为EnterpriseExtAbility.ts。 +3. 打开EnterpriseExtAbility.ts文件,导入EnterpriseAdminExtensionAbility模å—,自定义类继承EnterpriseAdminExtensionAbilityå¹¶åŠ ä¸Šéœ€è¦çš„应用通知回调方法,如onAdminEnabled()ã€onAdminDisabled()ç‰å›žè°ƒæ–¹æ³•ã€‚当设备管ç†å‘˜åº”用被激活或者去激活时,则å¯ä»¥åœ¨å¯¹åº”回调方法ä¸æŽ¥å—系统å‘é€é€šçŸ¥ã€‚ + +```ts +import EnterpriseAdminExtensionAbility from '@ohos.enterprise.EnterpriseAdminExtensionAbility'; + +export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility { + + onAdminEnabled() { + console.info("onAdminEnabled"); + } + + onAdminDisabled() { + console.info("onAdminDisabled"); + } + + onBundleAdded(bundleName: string) { + console.info("EnterpriseAdminAbility onBundleAdded bundleName:" + bundleName) + } + + onBundleRemoved(bundleName: string) { + console.info("EnterpriseAdminAbility onBundleRemoved bundleName" + bundleName) + } +}; +``` + +​ 4.在工程Module对应的[module.json5](../quick-start/module-configuration-file.md)é…置文件ä¸æ³¨å†ŒServiceExtensionAbility,typeæ ‡ç¾éœ€è¦è®¾ç½®ä¸ºâ€œenterpriseAdminâ€ï¼ŒsrcEntranceæ ‡ç¾è¡¨ç¤ºå½“å‰ExtensionAbility组件所对应的代ç 路径。 + +```ts +"extensionAbilities": [ + { + "name": "ohos.samples.enterprise_admin_ext_ability", + "type": "enterpriseAdmin", + "visible": true, + "srcEntrance": "./ets/enterpriseextability/EnterpriseAdminAbility.ts" + } + ] +``` + +## 使用示例 + +通过@ohos.enterprise.adminManager模å—ä¸çš„subscribeManagedEvent接å£å’ŒunsubscribeManagedEvent接å£è¿›è¡Œä¼ä¸šè®¾å¤‡ç®¡ç†äº‹ä»¶çš„订阅,订阅应用安装ã€å¸è½½äº‹ä»¶ã€‚当订阅æˆåŠŸåŽï¼Œç«¯ä¾§åº”用安装和å¸è½½äº‹ä»¶é€šçŸ¥MDM应用,MDM应用å¯ä»¥åœ¨å›žè°ƒå‡½æ•°ä¸è¿›è¡Œäº‹ä»¶ä¸ŠæŠ¥ï¼Œé€šçŸ¥ä¼ä¸šç®¡ç†å‘˜ã€‚ + +```ts + @State managedEvents: Array<adminManager.ManagedEvent> = [0,1] + @State subscribeManagedEventMsg: string = "" + @State unsubscribeManagedEventMsg: string = "" + + async subscribeManagedEventCallback() { + await adminManager.subscribeManagedEvent(this.admin, + [adminManager.ManagedEvent.MANAGED_EVENT_BUNDLE_ADDED, + adminManager.ManagedEvent.MANAGED_EVENT_BUNDLE_REMOVED], (error) => { + if (error) { + this.subscribeManagedEventMsg = 'subscribeManagedEvent Callback::errorCode: ' + error.code + ' errorMessage: ' + error.message + } else { + this.subscribeManagedEventMsg = 'subscribeManagedEvent Callback::success' + } + }) + } + + async unsubscribeManagedEventPromise() { + await adminManager.unsubscribeManagedEvent(this.admin, + [adminManager.ManagedEvent.MANAGED_EVENT_BUNDLE_ADDED, + adminManager.ManagedEvent.MANAGED_EVENT_BUNDLE_REMOVED]).then(() => { + this.unsubscribeManagedEventMsg = 'unsubscribeManagedEvent Promise::success' + }).catch((error) => { + this.unsubscribeManagedEventMsg = 'unsubscribeManagedEvent Promise::errorCode: ' + error.code + ' errorMessage: ' + error.message + }) + } +``` + + + +## 相关实例 + +针对EnterpriseAdminExtensionAbilityå¼€å‘,有以下相关示例å¯ä¾›å‚考: + +[EnterpriseAdminExtensionAbility:EnterpriseAdminExtensionAbility的创建与使用(ArkTS) (API9)](https://gitee.com/openharmony/applications_app_samples/tree/master/customization/EnterpriseAdminExtensionAbility) +