HarmonyOS 鸿蒙Next用户p12凭证的迁移问题
HarmonyOS 鸿蒙Next用户p12凭证的迁移问题
在迁移安卓用户凭证相关代码的时候遇到了一些问题,求大佬解惑
1、webview在onClientAuthenticationRequest(request)的时候需要客户端对用户凭证进行解析,我找了一下webview的文档发现有一个demo能够实现通过文件选择的方式去回调request.handler.confirm(uri)的方式,但是debug的时候并没有任何效果且看不到错误日志,(onClientAuthenticationRequest的demo)。所以就想用request.handler.confirm(priKeyFile,certChainFile)的方式解决,但是我并没有找到怎么获取这两个参数的方式,求大佬解惑
2、迁移的时候发现harmony没有类似KeyChain的东西。我们这边在安卓里是通过下面的方式和webview的onReceivedClientCertRequest(view, request)交互的
val privateKey = KeyChain.getPrivateKey(currentActivity, alias)
val certificateChain = KeyChain.getCertificateChain(currentActivity, alias)
request.proceed(privateKey, chain)
我找了下文档,看到了certManager的一些方法,但是似乎都没有能对应上面代码的替换方案
1、使用onClientAuthenticationRequest方法,也可以在onSslErrorEventReceive函数中调用event.handler.handleConfirm()函数达到忽略ssl证书的效果
onClientAuthenticationRequest可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5#onclientauthenticationrequest9
onSslErrorEventReceive可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5#onsslerroreventreceive9
2、HarmonyOS可以参考这个:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/asset-store-kit-overview-0000001816916898
我现在使用的就是onClientAuthenticationRequest实现双向认证的那个demo,但是报错的回调方法不是onSslErrorEventReceive,就只有onErrorReceive,哈哈哈 而且我的用户凭证的uri已经给到event.handler.confirm()方法了,但是还是会出现ERR_SSL_CLIENT_AUTH_CERT_NEEDED这个错误,很奇怪
let authUri: string | undefined = undefined
try {
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION;
const data = await bundleManager.getBundleInfoForSelf(bundleFlags)
const appUid = data.appInfo.uid.toString()
let abilityContext = GlobalContext.getContext().getValue("AbilityContext")
if (!abilityContext) {
throw new CommonError(`get context fail on ${SystemCertificateProvider.name}`)
}
const result = await (abilityContext as common.UIAbilityContext).startAbilityForResult({
bundleName: "com.ohos.certmanager",
abilityName: "MainAbility",
uri: "requestAuthorize",
parameters: {
appUid: appUid,
}
} as Want)
if (!result.resultCode && result.want && result.want.parameters) {
authUri = result.want.parameters.authUri as string
}
} catch (e) {
LogUtil.error(e)
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
关于HarmonyOS 鸿蒙Next用户p12凭证的迁移问题,以下是一些可能的解决方案:
HarmonyOS 鸿蒙Next项目迁移至新电脑时,若遇到p12凭证相关的报错,通常是由于.p12文件(密钥库文件,用于保存工程签名的密钥)未正确迁移或配置。要解决这个问题,可以尝试以下方法:
- 检查.p12文件:确保原工程中的.p12文件已复制到新电脑的对应路径下。
- 配置签名信息:在新电脑的鸿蒙项目中,重新配置签名信息,确保signingConfigs中的storeFile路径正确指向.p12文件。
- 清理并重建项目:在开发环境中清理并重建项目,以确保新的签名配置生效。
- 验证签名:重新签名项目,并验证签名是否成功。
如果以上步骤无法解决问题,可能是签名配置文件存在其他错误或遗漏。此时,可以尝试清空build-profile.json5文件中的signingConfigs内容,然后同步项目并重新签名。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html