Android – Webview sólo aplica los encabezados a la solicitud inicial
Estoy escribiendo una aplicación para Android que usa webview para solicitar contenido desde un servidor web, pero usando mWebView.loadUrl (url1, headers); Sólo aplicará los encabezados a la solicitud inicial y no los recursos de la solicitud.
¿Alguna idea de cómo aplicar los encabezados a las solicitudes de recursos también?
- Webview con pantalla completa en android
- Android- usando addJavaScriptInterface para devolver un valor de Javascript
- Android WebView: métodos de la actividad de llamada forma interfaz JavaScript
- Desactivar la barra de direcciones en la vista web de Android
- ¿Cargar html local en WebView?
- Web android captura peor url
- ¿Es posible obtener el código HTML de WebView
- ¿Cómo abrir un nuevo navegador desde WebViewClient?
- Android WebView + loadUrl con javascript + onPageFinished = lag
- Android webview - set referer (para la versión <2.2 aka Froyo)
- Url abierta en pantalla completa en lugar de Webview
- WebView - onReceivedHttpAuthRequest nunca se detiene
- WebView y localhost
No está absolutamente seguro pero puede intentar anular el shouldOverrideUrlLoading(WebView view, String url)
y manejar todas las redirecciones iniciando mWebView.loadUrl(url, yourHeaders);
No olvide devolver true en ese método overriden.
En primer lugar, permítanme decir que no puedo creer que webview chupa tanto.
Esto es lo que hice para pasar encabezados personalizados
public class CustomWebview extends WebView { public void loadWithHeaders(String url) { setWebViewClient(new WebViewClient() { @Override public WebResourceResponse shouldInterceptRequest(WebView view, String url) { //makes a custom http request, which allows you to add your own headers return customRequest(url); } }); loadUrl(url); } /** * Custom http request with headers * @param url * @return */ private WebResourceResponse customRequest(String url) { try { OkHttpClient httpClient = new OkHttpClient(); Request request = new Request.Builder() .url(url.trim()) .addHeader("Header-Name", "Android Sucks") .build(); Response response = httpClient.newCall(request).execute(); return new WebResourceResponse( "text/html", // You can set something other as default content-type "utf-8", // Again, you can set another encoding as default response.body().byteStream() ); } catch (IOException e) { //return null to tell WebView we failed to fetch it WebView should try again. return null; } }
}
- Copia al portapapeles en jquery / javascript sin flash para ipad / iphone
- Lista de todas las actividades de nuestra aplicación que se ejecutan en el dispositivo