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