cordova 安装ssl证书_Cordova下自签名证书无法访问https问题(IOS和Android)

在Cordova应用中遇到自签名SSL证书无法访问HTTPS问题时,可以针对IOS和Android采取不同处理方式。对于IOS,需在appDelegate.m文件中添加允许任何HTTPS证书的代码;而对于Android,若不使用crosswalk,需修改SystemWebViewClient.java的onReceivedSslError方法,使用crosswalk则需反编译并修改SslUtil.class。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IOS处理:

在appDelegate.m文件中添加以下代码:

@implementation NSURLRequest(DataController)

+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host

{

return YES;

}

@end

Android处理:

1、如果没有使用crosswalk

修改 org.apache.cordova.engine.SystemWebViewClient.java文件中onReceivedSslError()方法为如下:

/**

* Notify the host application that an SSL error occurred while loading a resource.

* The host application must call either handler.cancel() or handler.proceed().

* Note that the decision may be retained for use in response to future SSL errors.

* The default behavior is to cancel the load.

*

* @param view The WebView that is initiating the callback.

* @param handler An SslErrorHandler object that will handle the user's response.

* @param error The SSL error object.

*/

@TargetApi(8)

@Override

public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {

handler.proceed();

}

2、如果使用crosswalk

a、反编译、修改SslUtil.class,屏蔽//    case -200:

SslUtil.class位于org\xwalk\core\internal\下,jar包名可能不一样,找到自己的crosswalk jar包

SslUtil.class下载地址:

1.7jdk编译https://download.csdn.net/download/myfmyfmyfmyf/10934561

1.8jdk编译https://download.csdn.net/download/myfmyfmyfmyf/10934553

b、修改onReceivedSslError方法,将其改为:

@Override

public void onReceivedSslError(XWalkView view, ValueCallbackcallback, SslError error) {

callback.onReceiveValue(true);

}

参考转载自:

https://blog.csdn.net/fxp850899969/article/details/56485447

https://blog.csdn.net/Ruomiz/article/details/81099300

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值