2010-05-03 9 views

Respuesta

25

La página de la Guía del desarrollador de GWT en Cross-Browser Support proporciona una función JSNI que devuelve la cadena UserAgent.

Sin embargo, tenga en cuenta que probablemente desee utilizar Deferred Binding para escribir el código específico del navegador, en lugar de detectar el UserAgent.

Editar: Kasturi señala Window.Navigator.getUserAgent(), que se realiza de este modo:

/** 
* Gets the navigator.appName. 
* 
* @return the window's navigator.appName. 
*/ 
public static native String getAppName() /*-{ 
    return $wnd.navigator.appName; 
}-*/; 

Así que sí, esto debería hacer lo que la función mencionada en la página Soporte Cross-Browser hace (excepto que doesn' t llame a LowCase() sobre él), aunque nuevamente puede ser mejor que use el enlace diferido.

+2

Acabo de descubrir que Navigator.getUserAgent() se puede utilizar para detectar. ¿Será eso una buena idea? – Kasturi

+4

La vinculación diferida es generalmente una mejor opción porque GWT envía un código específico del navegador a ese navegador (es decir, el código solo para IE solo se enviará a los navegadores IE), lo que reduce el tamaño de la descarga. Sin embargo, esto limita las cadenas de agente de usuario que reconoce GWT. Si, por ejemplo, desea mostrar un mensaje a los usuarios de IE6.0.1.001, y no a otros usuarios de IE, será mejor que utilice Navigator.getUserAgent. Si desea saber qué categorías de agente de usuario amplio admite GWT, consulte esta publicación de blog que escribí: http://www.mooreds.com/wordpress/archives/000574 – mooreds

Cuestiones relacionadas