¿Es posible cambiar el agente de usuario en Crosswalk Android / Tizen-Apps?
Estoy desarrollando una aplicación android / tizen usando un proyecto de crosswalk. Ahora tengo que cambiar el agente de usuario para ver la página en la versión de escritorio. ¿Es posible cambiar el agente de usuario y cómo? ¡Gracias!
- El audio HTML5 no se reproduce varias veces en el dispositivo Android 4.0.4 Navegador nativo
- ¿Puede Android cache el video HTML5 con el manifiesto de caché sin conexión?
- Android Studio - ¿Cómo cargar contenido HTML5 desde una ruta local usando Webview?
- DownloadListener.onDownloadStart () nunca llamado
- ¿Cómo puedo reproducir video html5 en línea en un WebView?
- Elemento HTML5 <video> en Android
- Usar jQuery móvil sin conexión
- Html Audio en la vista web de Android
- HTML5 SQLite vs Base de datos nativa en caso de PhoneGap
- ¿Cómo puedo pasar un valor de una página HTML a otra usando JavaScript?
- ¿Cómo puedo implementar la arquitectura MVC con JQuery móvil
- Phonegap: ¿Es posible reproducir varios videos simultáneamente en la misma página usando etiqueta de vídeo html5?
- App WebView en Android 4.4 y no se ocupa correctamente de Viewport
Utilice este fragmento:
XWalkView mXWalkView; mXWalkView.getSettings().setUserAgentString("Your User Agent");
He utilizado la reflexión para resolver este problema hasta que esta API vuelva a ser pública en Crosswalk 12 . Esto funciona en Crosswalk 9.38.208.10.
private void setWebViewUserAgent(XWalkView webView, String userAgent) { try { Method ___getBridge = XWalkView.class.getDeclaredMethod("getBridge"); ___getBridge.setAccessible(true); XWalkViewBridge xWalkViewBridge = null; xWalkViewBridge = (XWalkViewBridge)___getBridge.invoke(webView); XWalkSettings xWalkSettings = xWalkViewBridge.getSettings(); xWalkSettings.setUserAgentString(userAgent); } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) { // Could not set user agent e.printStackTrace(); } }
En la documentación no hay nada sobre él. Propably sólo manera es usar setResourceClient y WebResourceResponse para cambiar agente de usuario. Ejemplo de uso:
setResourceClient(new XWalkResourceClient(this) { @Override public WebResourceResponse shouldInterceptLoadRequest(XWalkView view, String url) { try { URL u = new URL(url); HttpURLConnection c = (HttpURLConnection) u.openConnection(Proxy.NO_PROXY); c.setRequestProperty("User-agent", "test user agent"); return new WebResourceResponse(null, "utf-8", c.getInputStream()); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return super.shouldInterceptLoadRequest(view, url); } });
La nueva API para establecer el agente de usuario está en borrador y se publicará en Crosswalk-12, a finales de enero del próximo año.
Será como: xwalkView.setUserAgentString (newUserAgentString);
Esto es para aplicaciones web donde puedes alterar JS-Files .:
Yo uso esta solución, funciona también con Crosswalk 9.
xview.addJavascriptInterface(new Object(){ @JavascriptInterface public String getNewUserAgent(){ return "My User Agent"; } }, "NativeInterface");
Y en mi web-app solo llamo:
navigator.ua = NativeInterface.getNewUserAgent();
- Android: Leer el HTML de una página web en una cadena
- Android – Cómo establecer el valor del color en TRANSPARENT