244 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			244 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | /* | ||
|  |  * Copyright (c) 2022 Huawei Device Co., Ltd. | ||
|  |  * Licensed under the Apache License, Version 2.0 (the "License"); | ||
|  |  * you may not use this file except in compliance with the License. | ||
|  |  * You may obtain a copy of the License at | ||
|  |  * | ||
|  |  *     http://www.apache.org/licenses/LICENSE-2.0
 | ||
|  |  * | ||
|  |  * Unless required by applicable law or agreed to in writing, software | ||
|  |  * distributed under the License is distributed on an "AS IS" BASIS, | ||
|  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
|  |  * See the License for the specific language governing permissions and | ||
|  |  * limitations under the License. | ||
|  |  */ | ||
|  | 
 | ||
|  | import { AsyncCallback } from './basic'; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Support install, upgrade, remove and recover bundles on the devices. | ||
|  |  * @namespace installer | ||
|  |  * @syscap SystemCapability.BundleManager.BundleFramework.Core | ||
|  |  * @systemapi | ||
|  |  * @since 9 | ||
|  |  */ | ||
|  | declare namespace installer { | ||
|  |   /** | ||
|  |    * Obtains the interface used to install bundle. | ||
|  |    * @param { AsyncCallback } callback - The callback of BundleInstaller object. | ||
|  |    * @throws { BusinessError } 202 - Permission denied, non-system app called system api. | ||
|  |    * @throws { BusinessError } 401 - Input parameters check failed. | ||
|  |    * @syscap SystemCapability.BundleManager.BundleFramework.Core | ||
|  |    * @systemapi | ||
|  |    * @since 9 | ||
|  |    */ | ||
|  |   function getBundleInstaller(callback: AsyncCallback<BundleInstaller>): void | ||
|  | 
 | ||
|  |   /** | ||
|  |    * Obtains the interface used to install bundle. | ||
|  |    * @param { AsyncCallback } callback - The callback of getting a list of BundleInstaller objects. | ||
|  |    * @throws { BusinessError } 202 - Permission denied, non-system app called system api. | ||
|  |    * @returns { Promise<BundleInstaller> } BundleInstaller object. | ||
|  |    * @syscap SystemCapability.BundleManager.BundleFramework.Core | ||
|  |    * @systemapi | ||
|  |    * @since 9 | ||
|  |    */ | ||
|  |   function getBundleInstaller(): Promise<BundleInstaller>; | ||
|  | 
 | ||
|  |   /** | ||
|  |    * Bundle installer interface, include install uninstall recover. | ||
|  |    * @interface BundleInstaller | ||
|  |    * @syscap SystemCapability.BundleManager.BundleFramework.Core | ||
|  |    * @systemapi | ||
|  |    * @since 9 | ||
|  |    */ | ||
|  |   interface BundleInstaller { | ||
|  |     /** | ||
|  |      * Install haps for an application. | ||
|  |      * @permission ohos.permission.INSTALL_BUNDLE | ||
|  |      * @param { Array<string> } hapFilePaths - Indicates the path where the hap of the application is stored. | ||
|  |      * @param { InstallParam } installParam - Indicates other parameters required for the installation. | ||
|  |      * @param { AsyncCallback } callback - The callback of installing haps result. | ||
|  |      * @throws { BusinessError } 201 - Calling interface without permission 'ohos.permission.INSTALL_BUNDLE'. | ||
|  |      * @throws { BusinessError } 202 - Permission denied, non-system app called system api. | ||
|  |      * @throws { BusinessError } 401 - Input parameters check failed. | ||
|  |      * @throws { BusinessError } 17700004 - The specified user ID is not found. | ||
|  |      * @throws { BusinessError } 17700010 - Failed to install the HAP because the HAP fails to be parsed. | ||
|  |      * @throws { BusinessError } 17700011 - Failed to install the HAP because the HAP signature fails to be verified. | ||
|  |      * @throws { BusinessError } 17700012 - Failed to install the HAP because the HAP path is invalid or the HAP is too large. | ||
|  |      * @throws { BusinessError } 17700015 - Failed to install the HAPs because they have different configuration information. | ||
|  |      * @throws { BusinessError } 17700016 - Failed to install the HAP because of insufficient system disk space. | ||
|  |      * @throws { BusinessError } 17700017 - Failed to install the HAP since the version of the HAP to install is too early. | ||
|  |      * @throws { BusinessError } 17700018 - Failed to install because the dependent module does not exist. | ||
|  |      * @syscap SystemCapability.BundleManager.BundleFramework.Core | ||
|  |      * @systemapi | ||
|  |      * @since 9 | ||
|  |      */ | ||
|  |     install(hapFilePaths: Array<string>, installParam: InstallParam, callback: AsyncCallback<void>) : void; | ||
|  |     install(hapFilePaths: Array<string>, callback: AsyncCallback<void>) : void; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Install haps for an application. | ||
|  |      * @permission ohos.permission.INSTALL_BUNDLE | ||
|  |      * @param { Array<string> } hapFilePaths - Indicates the path where the hap of the application is stored. | ||
|  |      * @param { InstallParam } installParam - Indicates other parameters required for the installation. | ||
|  |      * @param { AsyncCallback } callback - The callback of installing haps result. | ||
|  |      * @throws { BusinessError } 201 - Calling interface without permission 'ohos.permission.INSTALL_BUNDLE'. | ||
|  |      * @throws { BusinessError } 202 - Permission denied, non-system app called system api. | ||
|  |      * @throws { BusinessError } 401 - Input parameters check failed. | ||
|  |      * @throws { BusinessError } 17700004 - The specified user ID is not found. | ||
|  |      * @throws { BusinessError } 17700010 - Failed to install the HAP because the HAP fails to be parsed. | ||
|  |      * @throws { BusinessError } 17700011 - Failed to install the HAP because the HAP signature fails to be verified. | ||
|  |      * @throws { BusinessError } 17700012 - Failed to install the HAP because the HAP path is invalid or the HAP is too large. | ||
|  |      * @throws { BusinessError } 17700015 - Failed to install the HAPs because they have different configuration information. | ||
|  |      * @throws { BusinessError } 17700016 - Failed to install the HAP because of insufficient system disk space. | ||
|  |      * @throws { BusinessError } 17700017 - Failed to install the HAP since the version of the HAP to install is too early. | ||
|  |      * @throws { BusinessError } 17700018 - Failed to install because the dependent module does not exist. | ||
|  |      * @syscap SystemCapability.BundleManager.BundleFramework.Core | ||
|  |      * @systemapi | ||
|  |      * @since 9 | ||
|  |      */ | ||
|  |     install(hapFilePaths: Array<string>, installParam?: InstallParam) : Promise<void>; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Uninstall an application. | ||
|  |      * @permission ohos.permission.INSTALL_BUNDLE | ||
|  |      * @param { string } bundleName - Indicates the bundle name of the application to be uninstalled. | ||
|  |      * @param { InstallParam } installParam - Indicates other parameters required for the uninstall. | ||
|  |      * @param { AsyncCallback } callback - The callback of uninstalling application result. | ||
|  |      * @throws { BusinessError } 201 - Calling interface without permission 'ohos.permission.INSTALL_BUNDLE'. | ||
|  |      * @throws { BusinessError } 202 - Permission denied, non-system app called system api. | ||
|  |      * @throws { BusinessError } 401 - Input parameters check failed. | ||
|  |      * @throws { BusinessError } 17700001 - The specified bundle name is not found. | ||
|  |      * @throws { BusinessError } 17700004 - The specified user ID is not found. | ||
|  |      * @throws { BusinessError } 17700020 - The specified bundle is pre-installed bundle which cannot be uninstalled. | ||
|  |      * @syscap SystemCapability.BundleManager.BundleFramework.Core | ||
|  |      * @systemapi | ||
|  |      * @since 9 | ||
|  |      */ | ||
|  |     uninstall(bundleName: string, installParam: InstallParam, callback : AsyncCallback<void>) : void; | ||
|  |     uninstall(bundleName: string, callback : AsyncCallback<void>) : void; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Uninstall an application. | ||
|  |      * @permission ohos.permission.INSTALL_BUNDLE | ||
|  |      * @param { string } bundleName - Indicates the bundle name of the application to be uninstalled. | ||
|  |      * @param { InstallParam } installParam - Indicates other parameters required for the uninstall. | ||
|  |      * @param { AsyncCallback } callback - The callback of uninstalling application result. | ||
|  |      * @throws { BusinessError } 201 - Calling interface without permission 'ohos.permission.INSTALL_BUNDLE'. | ||
|  |      * @throws { BusinessError } 202 - Permission denied, non-system app called system api. | ||
|  |      * @throws { BusinessError } 401 - Input parameters check failed. | ||
|  |      * @throws { BusinessError } 17700001 - The specified bundle name is not found. | ||
|  |      * @throws { BusinessError } 17700004 - The specified userId is not existed. | ||
|  |      * @throws { BusinessError } 17700020 - The specified bundle is pre-installed bundle which cannot be uninstalled. | ||
|  |      * @syscap SystemCapability.BundleManager.BundleFramework.Core | ||
|  |      * @systemapi | ||
|  |      * @since 9 | ||
|  |      */ | ||
|  |     uninstall(bundleName: string, installParam?: InstallParam) : Promise<void>; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Recover an application. | ||
|  |      * @permission ohos.permission.INSTALL_BUNDLE | ||
|  |      * @param { string } bundleName - Indicates the bundle name of the application to be recovered. | ||
|  |      * @param { InstallParam } installParam - Indicates other parameters required for the recover. | ||
|  |      * @param { AsyncCallback } callback - The callback of recovering application result. | ||
|  |      * @throws { BusinessError } 201 - Calling interface without permission 'ohos.permission.INSTALL_BUNDLE'. | ||
|  |      * @throws { BusinessError } 202 - Permission denied, non-system app called system api. | ||
|  |      * @throws { BusinessError } 401 - Input parameters check failed. | ||
|  |      * @throws { BusinessError } 17700001 - The specified bundle name is not found. | ||
|  |      * @throws { BusinessError } 17700004 - The specified user ID is not found. | ||
|  |      * @syscap SystemCapability.BundleManager.BundleFramework.Core | ||
|  |      * @systemapi | ||
|  |      * @since 9 | ||
|  |      */ | ||
|  |     recover(bundleName: string, installParam: InstallParam, callback: AsyncCallback<void>): void; | ||
|  |     recover(bundleName: string, callback: AsyncCallback<void>): void; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Recover an application. | ||
|  |      * @permission ohos.permission.INSTALL_BUNDLE | ||
|  |      * @param { string } bundleName - Indicates the bundle name of the application to be recovered. | ||
|  |      * @param { InstallParam } installParam - Indicates other parameters required for the recover. | ||
|  |      * @param { AsyncCallback } callback - The callback of recovering application result. | ||
|  |      * @throws { BusinessError } 201 - Calling interface without permission 'ohos.permission.INSTALL_BUNDLE'. | ||
|  |      * @throws { BusinessError } 202 - Permission denied, non-system app called system api. | ||
|  |      * @throws { BusinessError } 401 - Input parameters check failed. | ||
|  |      * @throws { BusinessError } 17700001 - The specified bundle name is not found. | ||
|  |      * @throws { BusinessError } 17700004 - The specified user ID is not found. | ||
|  |      * @syscap SystemCapability.BundleManager.BundleFramework.Core | ||
|  |      * @systemapi | ||
|  |      * @since 9 | ||
|  |      */ | ||
|  |     recover(bundleName: string, installParam?: InstallParam) : Promise<void>; | ||
|  |   } | ||
|  | 
 | ||
|  |   /** | ||
|  |    * Provides parameters required for hashParam. | ||
|  |    * @typedef HashParam | ||
|  |    * @syscap SystemCapability.BundleManager.BundleFramework.Core | ||
|  |    * @systemapi | ||
|  |    * @since 9 | ||
|  |    */ | ||
|  |   export interface HashParam { | ||
|  |     /** | ||
|  |      * Indicates the moduleName | ||
|  |      * @syscap SystemCapability.BundleManager.BundleFramework.Core | ||
|  |      * @since 9 | ||
|  |      */ | ||
|  |     moduleName: string; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Indicates the hash value | ||
|  |      * @syscap SystemCapability.BundleManager.BundleFramework.Core | ||
|  |      * @since 9 | ||
|  |      */ | ||
|  |     hashValue: string; | ||
|  |   } | ||
|  | 
 | ||
|  |   /** | ||
|  |    * Provides parameters required for installing or uninstalling an application. | ||
|  |    * @typedef InstallParam | ||
|  |    * @syscap SystemCapability.BundleManager.BundleFramework.Core | ||
|  |    * @systemapi | ||
|  |    * @since 9 | ||
|  |    */ | ||
|  |   export interface InstallParam { | ||
|  |     /** | ||
|  |      * Indicates the user id | ||
|  |      * @syscap SystemCapability.BundleManager.BundleFramework.Core | ||
|  |      * @since 9 | ||
|  |      */ | ||
|  |     userId?: number; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Indicates the install flag, which 0x00 for normal, 0x10 for freeInstall | ||
|  |      * @syscap SystemCapability.BundleManager.BundleFramework.Core | ||
|  |      * @since 9 | ||
|  |      */ | ||
|  |     installFlag?: number; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Indicates whether the param has data | ||
|  |      * @syscap SystemCapability.BundleManager.BundleFramework.Core | ||
|  |      * @since 9 | ||
|  |      */ | ||
|  |     isKeepData?: boolean; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Indicates the hash params | ||
|  |      * @syscap SystemCapability.BundleManager.BundleFramework.Core | ||
|  |      * @since 9 | ||
|  |      */ | ||
|  |     hashParams?: Array<HashParam>; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Indicates the deadline of the crowdtesting bundle | ||
|  |      * @syscap SystemCapability.BundleManager.BundleFramework.Core | ||
|  |      * @since 9 | ||
|  |      */ | ||
|  |     crowdtestDeadline?: number; | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | export default installer; |