¿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!

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(); 
  • El video HTML5 no se reproduce en dispositivos Android
  • Aplicación web de pantalla completa para Android
  • HTML5 Canvas en teléfonos Android - Redibujar y resaltar problemas
  • Problema con la base de datos SQL en la aplicación PhoneGap que se ejecuta en el iPhone
  • ¿Cómo se deben formatear las restricciones (Android) / Chrome getUserMedia ()?
  • ¿Cómo puedo utilizar html5 etiquetas de audio para reproducir mp3s locales en Android usando phonegap?
  • Los archivos de video locales no se reproducirán en la aplicación para Android de Cordova
  • Soporte de SVG en navegadores de teléfonos inteligentes
  • HTML5 Android Phonegap La aplicación Web no funciona sin conexión con el manifiesto de caché
  • Cómo abrir un teclado numérico en android / chrome con <input type = "text">?
  • Tipo de entrada = número no es posible insertar números negativos en el teléfono móvil
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.