1e41f4b71Sopenharmony_ci# @ohos.security.certManagerDialog (证书管理对话框模块) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci证书管理对话框主要提供拉起证书管理界面的能力,用户在拉起的证书管理对话框可对证书进行管理(安装,存储,使用,销毁)。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **说明:** 6e41f4b71Sopenharmony_ci> 7e41f4b71Sopenharmony_ci> 本模块首批接口从API version 13开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci## 导入模块 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci```ts 12e41f4b71Sopenharmony_ciimport certificateManagerDialog from '@ohos.security.certManagerDialog'; 13e41f4b71Sopenharmony_ci``` 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ci## CertificateDialogPageType 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci表示证书管理对话框的页面类型。 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Security.CertificateManagerDialog 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci**模型约束:** 此接口仅可在Stage模型下使用。 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 24e41f4b71Sopenharmony_ci| ---------- | ------ | --------- | 25e41f4b71Sopenharmony_ci| PAGE_MAIN | 1 | 证书管理应用主页面 | 26e41f4b71Sopenharmony_ci| PAGE_CA_CERTIFICATE | 2 | CA证书列表页面 | 27e41f4b71Sopenharmony_ci| PAGE_CREDENTIAL | 3 | 凭据列表页面 | 28e41f4b71Sopenharmony_ci| PAGE_INSTALL_CERTIFICATE | 4 | 安装证书页面 | 29e41f4b71Sopenharmony_ci 30e41f4b71Sopenharmony_ci## CertificateType<sup>14+</sup> 31e41f4b71Sopenharmony_ci 32e41f4b71Sopenharmony_ci表示安装证书的类型。 33e41f4b71Sopenharmony_ci 34e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Security.CertificateManagerDialog 35e41f4b71Sopenharmony_ci 36e41f4b71Sopenharmony_ci**模型约束:** 此接口仅可在Stage模型下使用。 37e41f4b71Sopenharmony_ci 38e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 39e41f4b71Sopenharmony_ci| ---------- | ------ | --------- | 40e41f4b71Sopenharmony_ci| CA_CERT | 1 | CA证书 | 41e41f4b71Sopenharmony_ci 42e41f4b71Sopenharmony_ci## CertificateScope<sup>14+</sup> 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci表示安装证书的使用范围。 45e41f4b71Sopenharmony_ci 46e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Security.CertificateManagerDialog 47e41f4b71Sopenharmony_ci 48e41f4b71Sopenharmony_ci**模型约束:** 此接口仅可在Stage模型下使用。 49e41f4b71Sopenharmony_ci 50e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 51e41f4b71Sopenharmony_ci| ---------- | ------ | --------- | 52e41f4b71Sopenharmony_ci| CURRENT_USER | 1 | 当前用户 | 53e41f4b71Sopenharmony_ci 54e41f4b71Sopenharmony_ci## CertificateDialogErrorCode 55e41f4b71Sopenharmony_ci 56e41f4b71Sopenharmony_ci表示调用证书管理对话框相关API的错误码。 57e41f4b71Sopenharmony_ci 58e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Security.CertificateManagerDialog 59e41f4b71Sopenharmony_ci 60e41f4b71Sopenharmony_ci**模型约束:** 此接口仅可在Stage模型下使用。 61e41f4b71Sopenharmony_ci 62e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 63e41f4b71Sopenharmony_ci| ---------- | ------ | --------- | 64e41f4b71Sopenharmony_ci| ERROR_GENERIC | 29700001 | 表示调用接口时发生内部错误。 | 65e41f4b71Sopenharmony_ci| ERROR_OPERATION_CANCELED<sup>14+</sup> | 29700002 | 表示调用接口时用户取消操作。 | 66e41f4b71Sopenharmony_ci| ERROR_OPERATION_FAILED<sup>14+</sup> | 29700003 | 表示调用接口时安装证书失败。 | 67e41f4b71Sopenharmony_ci| ERROR_DEVICE_NOT_SUPPORTED<sup>14+</sup> | 29700004 | 表示调用接口时设备类型不支持。 | 68e41f4b71Sopenharmony_ci 69e41f4b71Sopenharmony_ci## certificateManagerDialog.openCertificateManagerDialog 70e41f4b71Sopenharmony_ci 71e41f4b71Sopenharmony_ciopenCertificateManagerDialog(context: common.Context, pageType: CertificateDialogPageType): Promise\<void> 72e41f4b71Sopenharmony_ci 73e41f4b71Sopenharmony_ci表示拉起证书管理对话框,显示相应的页面,使用Promise方式异步返回结果。 74e41f4b71Sopenharmony_ci 75e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.ACCESS_CERT_MANAGER 76e41f4b71Sopenharmony_ci 77e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Security.CertificateManagerDialog 78e41f4b71Sopenharmony_ci 79e41f4b71Sopenharmony_ci**模型约束:** 此接口仅可在Stage模型下使用。 80e41f4b71Sopenharmony_ci 81e41f4b71Sopenharmony_ci**参数**: 82e41f4b71Sopenharmony_ci 83e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 84e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------- | ---- | -------------------------- | 85e41f4b71Sopenharmony_ci| context | [common.Context](../apis-ability-kit/js-apis-app-ability-common.md) | 是 | 表示应用的上下文信息。 | 86e41f4b71Sopenharmony_ci| pageType | [CertificateDialogPageType](#certificatedialogpagetype) | 是 | 表示页面类型。 | 87e41f4b71Sopenharmony_ci 88e41f4b71Sopenharmony_ci**返回值**: 89e41f4b71Sopenharmony_ci 90e41f4b71Sopenharmony_ci| 类型 | 说明 | 91e41f4b71Sopenharmony_ci| ------------------------------------------- | -------------------- | 92e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 93e41f4b71Sopenharmony_ci 94e41f4b71Sopenharmony_ci**错误码:** 95e41f4b71Sopenharmony_ci 96e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[证书管理对话框错误码](errorcode-certManagerDialog.md)。 97e41f4b71Sopenharmony_ci 98e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 99e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | 100e41f4b71Sopenharmony_ci| 201 | Permission verification failed. The application does not have the permission required to call the API. | 101e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 102e41f4b71Sopenharmony_ci| 29700001 | Internal error. | 103e41f4b71Sopenharmony_ci 104e41f4b71Sopenharmony_ci**示例**: 105e41f4b71Sopenharmony_ci```ts 106e41f4b71Sopenharmony_ciimport certificateManagerDialog from '@ohos.security.certManagerDialog'; 107e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 108e41f4b71Sopenharmony_ciimport { common } from '@kit.AbilityKit'; 109e41f4b71Sopenharmony_ci 110e41f4b71Sopenharmony_ci/* context为应用的上下文信息,调用方自行获取,此处仅为示例 */ 111e41f4b71Sopenharmony_cilet context: common.Context = getContext(this); 112e41f4b71Sopenharmony_ci/* pageType为页面类型,此处赋值PAGE_MAIN,即拉起证书管理主界面 */ 113e41f4b71Sopenharmony_cilet pageType: certificateManagerDialog.CertificateDialogPageType = certificateManagerDialog.CertificateDialogPageType.PAGE_MAIN; 114e41f4b71Sopenharmony_citry { 115e41f4b71Sopenharmony_ci certificateManagerDialog.openCertificateManagerDialog(context, pageType).then(() => { 116e41f4b71Sopenharmony_ci console.info('Succeeded in opening certificate manager dialog.'); 117e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 118e41f4b71Sopenharmony_ci console.error(`Failed to open certificate manager dialog. Code: ${err.code}, message: ${err.message}`); 119e41f4b71Sopenharmony_ci }) 120e41f4b71Sopenharmony_ci} catch (error) { 121e41f4b71Sopenharmony_ci console.error(`Failed to open certificate manager dialog. Code: ${error.code}, message: ${error.message}`); 122e41f4b71Sopenharmony_ci} 123e41f4b71Sopenharmony_ci``` 124e41f4b71Sopenharmony_ci## certificateManagerDialog.openInstallCertificateDialog<sup>14+</sup> 125e41f4b71Sopenharmony_ci 126e41f4b71Sopenharmony_ciopenInstallCertificateDialog(context: common.Context, certType: CertificateType, certScope: CertificateScope, cert: Uint8Array): Promise\<string> 127e41f4b71Sopenharmony_ci 128e41f4b71Sopenharmony_ci表示拉起证书管理安装证书向导,显示相应的页面,使用Promise方式异步返回结果。 129e41f4b71Sopenharmony_ci 130e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.ACCESS_CERT_MANAGER 131e41f4b71Sopenharmony_ci 132e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Security.CertificateManagerDialog 133e41f4b71Sopenharmony_ci 134e41f4b71Sopenharmony_ci**模型约束:** 此接口仅可在Stage模型下使用。 135e41f4b71Sopenharmony_ci 136e41f4b71Sopenharmony_ci**参数**: 137e41f4b71Sopenharmony_ci 138e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 139e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------- | ---- | -------------------------- | 140e41f4b71Sopenharmony_ci| context | [common.Context](../apis-ability-kit/js-apis-app-ability-common.md) | 是 | 表示应用的上下文信息。 | 141e41f4b71Sopenharmony_ci| certType<sup>14+</sup> | [CertificateType](#certificatetype14) | 是 | 表示安装证书类型。 | 142e41f4b71Sopenharmony_ci| certScope<sup>14+</sup> | [CertificateScope](#certificatescope14) | 是 | 表示证书使用范围类型。 | 143e41f4b71Sopenharmony_ci| cert | Uint8Array | 是 | 表示安装证书数据。 | 144e41f4b71Sopenharmony_ci 145e41f4b71Sopenharmony_ci**返回值**: 146e41f4b71Sopenharmony_ci 147e41f4b71Sopenharmony_ci| 类型 | 说明 | 148e41f4b71Sopenharmony_ci| ------------------------------------------- | -------------------- | 149e41f4b71Sopenharmony_ci| Promise\<string> | Promise对象。表示返回证书uri的结果。 | 150e41f4b71Sopenharmony_ci 151e41f4b71Sopenharmony_ci**错误码:** 152e41f4b71Sopenharmony_ci 153e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[证书管理对话框错误码](errorcode-certManagerDialog.md)。 154e41f4b71Sopenharmony_ci 155e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 156e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | 157e41f4b71Sopenharmony_ci| 201 | Permission verification failed. The application does not have the permission required to call the API. | 158e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 159e41f4b71Sopenharmony_ci| 29700001 | Internal error. | 160e41f4b71Sopenharmony_ci| 29700002<sup>14+</sup> | The user cancels the installation operation. | 161e41f4b71Sopenharmony_ci| 29700003<sup>14+</sup> | The user install certificate failed in the certificate manager dialog. | 162e41f4b71Sopenharmony_ci| 29700004<sup>14+</sup> | The API is not supported on this device. | 163e41f4b71Sopenharmony_ci 164e41f4b71Sopenharmony_ci**示例**: 165e41f4b71Sopenharmony_ci```ts 166e41f4b71Sopenharmony_ciimport certificateManagerDialog from '@ohos.security.certManagerDialog'; 167e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 168e41f4b71Sopenharmony_ciimport { common } from '@kit.AbilityKit'; 169e41f4b71Sopenharmony_ci 170e41f4b71Sopenharmony_ci/* context为应用的上下文信息,调用方自行获取,此处仅为示例 */ 171e41f4b71Sopenharmony_cilet context: common.Context = getContext(this); 172e41f4b71Sopenharmony_ci/* certificateType为证书类型,此处赋值CA_CERT,即安装CA证书 */ 173e41f4b71Sopenharmony_cilet certificateType: certificateManagerDialog.CertificateType = certificateManagerDialog.CertificateType.CA_CERT; 174e41f4b71Sopenharmony_ci/* certificateScope为证书使用范围,此处赋值CURRENT_USER,即当前用户下可用 */ 175e41f4b71Sopenharmony_cilet certificateScope: certificateManagerDialog.CertificateScope = certificateManagerDialog.CertificateScope.CURRENT_USER; 176e41f4b71Sopenharmony_ci/* 安装的CA证书数据需要业务赋值,本例数据非CA证书数据 */ 177e41f4b71Sopenharmony_cilet caCert: Uint8Array = new Uint8Array([ 178e41f4b71Sopenharmony_ci 0x30, 0x82, 0x0b, 0xc1, 0x02, 0x01, 179e41f4b71Sopenharmony_ci]); 180e41f4b71Sopenharmony_citry { 181e41f4b71Sopenharmony_ci certificateManagerDialog.openInstallCertificateDialog(context, certificateType, certificateScope, caCert).then((uri: string) => { 182e41f4b71Sopenharmony_ci console.info('Succeeded opening install certificate'); 183e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 184e41f4b71Sopenharmony_ci console.error(`Failed to open install certificate dialog. Code: ${err.code}, message: ${err.message}`); 185e41f4b71Sopenharmony_ci }) 186e41f4b71Sopenharmony_ci} catch (error) { 187e41f4b71Sopenharmony_ci console.error(`Failed to open install certificate dialog. Code: ${error.code}, message: ${error.message}`); 188e41f4b71Sopenharmony_ci} 189e41f4b71Sopenharmony_ci```