TLS 1.1, 1.2 en WebView para android <= 4.3
En mi aplicación Android necesito mostrar el formulario de registro de terceros dentro de WebView
. Desafortunadamente, necesito también apoyar versiones de android <4.3, donde usted consigue error del apretón de manos del SSL cuando usted conecta con el Web site. Sin embargo, pude crear solicitudes directas en android 4.1+ con un contexto de SSL personalizado que tiene TLS 1.1 habilitado explícitamente, pero no puedo pasar este contexto SSL a mi WebView
. He intentado personalizar 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(); } } }); } }); } };
Pero eso no funcionó ya que shouldOverrideUrlLoading
no se llama en las solicitudes POST.
- ¿Cómo desplazarse automáticamente al campo de entrada en Android cuando el teclado virtual se superpone al mostrar?
- ¿Qué se considera onPageFinished en el WebViewClient para Android?
- Colocación de contenido HTML en dos columnas dentro de WebView
- Carga de archivos en WebView
- Android 7 WebView con wrap_content
¿Hay una manera de hacer este trabajo (probablemente una alternativa a WebView
)? Cualquier ayuda es apreciada.
- Android WebView PictureListener Deprecated - ¿Todavía no hay alternativa?
- Destacar característica de texto como google play book
- Cómo mostrar javascript popup en android webview
- Cómo cargar cadena html en una vista web?
- Fuentes hebreas de Android 2.3 en Webview
- OnKeyDown dentro del fragmento WebView
- Android - Añadir GestureDetector a la vista web
- Videos que no se reproducen en modo de pantalla completa
No estoy seguro si puedes hacer que funcione con el WebView actual, pero te recomendaría que consultes: https://crosswalk-project.org/documentation/android.html para reemplazar el WebView.
Esto se basa en la última versión de Chrome y no tendrás problemas con esa versión de Android en la que se está ejecutando el usuario.
Estoy seguro de que hay otras alternativas también, pero este es el que estoy usando para el trabajo y sé que el trabajo.
La mejor de las suertes para ti.