Forzar la versión móvil del sitio web para WebView
Estoy cargando una URL en una vista web para mostrarla en mi aplicación. El problema que estoy encontrando es, que no siempre el sitio reconoce que soy un teléfono (por qué tan siempre?). ¿Cómo exactamente forzar la webview a enviar al sitio que soy un teléfono móvil? Actualmente lo estoy haciendo así
webview.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3");
- Desactivar la barra de direcciones en la vista web de Android
- Cómo habilitar la barra de direcciones en Android WebView?
- Javascript no funciona en una actividad de WebView
- ¿Por qué Android WebView muestra una pantalla en negro?
- Android WebView muestra una página en blanco
Pero eso no funciona? ¿No funcionará porque no estoy usando un iPhone? No creo que esta es la razón ya que es sólo la configuración del agente de usuario …
Este es el código relevante (el código irelevant sólo contiene datos como obtener una url de una intención y formatear una cadena)
//package //imports public class WebViewing extends Activity { private WebView webview; private ProgressDialog dialog; //init strings @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.webviewer); ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); //init variables //get intent data and format string this.webview = (WebView) findViewById(R.id.webView1); webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); webview.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3"); webview.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { if (dialog.isShowing()) { dialog.dismiss(); } } public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); dialog.setMessage("Website wird geladen...\nDies ist abh\u00E4ngig von deiner Internet-Verbindung."); dialog.setCanceledOnTouchOutside(false); dialog.show(); webview.loadUrl(sourceURL); setTitle("Platz: " + plusRank + " - " + realDate); } //onCreateOptionsMenu method //onOptionsItemSelected method }
También he probado esta cadena para el agente de usuario
Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
- ¿Cargar html local en WebView?
- Cómo puedo deshabilitar la copia, pegar y seleccionar la barra de herramientas, desde una vista web dentro de la aplicación de Android
- ¿En un WebView hay una manera para que shouldOverrideUrlLoading determine si está cogiendo una redirección contra un usuario que chasca un acoplamiento?
- WebView - onReceivedHttpAuthRequest nunca se detiene
- El método webview.goBack () no invoca el método shouldOverrideUrlLoading
- Caída de la aplicación en Android 5.0.x
- Android Webview, Configuración de clic largo habilitado en los enlaces exclusivamente?
- ¿Cómo mostrar una barra de carga al renderizar con Webview.loadUrl en android?
Tratar de poner estas líneas siguientes: –
webview.getSettings().setJavaScriptEnabled(true); webview.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3");
- Cómo obtener la fecha del selector de fecha en android?
- Configuración de la aceleración de la máquina virtual para Android