确定gwt bootstrap中运行浏览器的设备

时间:2013-07-18 11:05:10

标签: gwt web-applications gwt-bootstrap

他们是否在gwt或gwt bootstrap中找到运行Web应用程序的设备。 就像设备是iphone,平板电脑,desktop.ipad等一样,请帮助。

2 个答案:

答案 0 :(得分:2)

设置

GWT允许您定义将在执行延迟绑定机制期间解析的属性(应用程序启动序列的一部分,请参阅延迟绑定的元素 here)。例如,在应用的gwt.xml文件中定义此内容:

<define-property name="formfactor" values="desktop,tablet,mobile" />

然后在同一个文件中提供:

<property-provider name="formfactor">
  <![CDATA[
    // my User Agent String-parsing JavaScript code 
  ]]>
</property-provider>

有关完整示例,请参阅MobileWebApp,一个GWT示例应用。具体来说,请查看FormFactor.gwt.xml

用法

一旦您设置了自己的媒体资源并对其提供商进行了规划,您的应用中就会有多个地方可以达到该媒体资源的价值:

  • CSS:

     @if formfactor mobile {
       /* my mobile form factor-specific rules */
     }     
    

    (有关更多受支持的规则,请参阅CssResource

  • module XML definition中(例如,对于ClientFactory选择):

    <replace-with class="com.my.client.ClientFactoryImplDesktop">
      <when-type-is class="com.my.client.ClientFactory" />
      <when-property-is name="formfactor" value="desktop" />
    </replace-with>
    
  • Java代码? Only via deferred binding

答案 1 :(得分:1)

您根本不需要引导程序来了解您的客户端正在运行哪个浏览器。

请致电...

Navigator.getUserAgent() 

...获取浏览器的用户代理。

此处提供了所有用户可用的列表:

http://www.useragentstring.com/pages/All/

例如,检查用户代理字符串中的“ipad”匹配。