gpt4 book ai didi

android - Android <= 4.3 的 WebView 中的 TLS 1.1、1.2

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:01:55 27 4
gpt4 key购买 nike

在我的 android 应用程序中,我需要在 WebView 中显示第 3 方注册表单。不幸的是,我还需要支持 android 版本 < 4.3,当你连接到网站时,你会收到 SSL 握手错误。但是,我能够使用明确启用了 TLS 1.1 的自定义 SSL 上下文在 android 4.1+ 上创建直接请求,但我无法将此 SSL 上下文传递到我的 WebView 中。我尝试制作自定义 WebViewClient

    private WebViewClient webViewClient = new WebViewClient() {
@Override
public void onPageFinished(WebView webView, String url) {
if (presenter != null) {
presenter.onLoadFinished();
}
}

@Override
public void onReceivedError(WebView webView,
WebResourceRequest request,
WebResourceError error) {
if (presenter != null) {
presenter.onLoadError();
}
}

@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){
handler.proceed();
}

@Override
public boolean shouldOverrideUrlLoading(WebView webView, String url) {
Request request = new Request.Builder().url(url).build();
final Handler handler = new Handler(mContext.getMainLooper());
//mOkHttpClient is an OkHttpClient with my custom SSLContext which has TLS 1.1 and TLS 1.2 enabled
mOkHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {

}

@Override
public void onResponse(Call call, final okhttp3.Response response) throws IOException {
handler.post(new Runnable() {
@Override
public void run() {
try {
webView.loadDataWithBaseURL(
null, response.body().string(), "text/html", "utf-8", null);
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
});
}

};

但这没有用,因为 shouldOverrideUrlLoading 没有在 POST 请求上调用。

有没有办法让它工作(可能是 WebView 的替代品)?任何帮助表示赞赏。

最佳答案

我不确定你是否可以让它与当前的 WebView 一起工作,但是我建议你看看:https://crosswalk-project.org/documentation/android.html替换 WebView。

这是基于最新版本的 Chrome 和用户运行的 Android 版本不会有问题。

我敢肯定还有其他选择,但这是我工作中使用的,我知道工作。

祝你好运。

关于android - Android <= 4.3 的 WebView 中的 TLS 1.1、1.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36951716/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com