1

GWT でコンパイルされたアプリを PlayStation 3 (Netfront) ブラウザにロードできた人はいますか? IE6 のみの順列をコンパイルしようとしましたが、PS3 はそれを取得しませんでした。基本的に問題は、新しい user.agent を GWT に追加し、それを既存の IE 構成にマップする方法だと思います。

4

1 に答える 1

0

UserAgent.gwt.xml を変更できます ( http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/user/UserAgent.gwt.xml ) 条件付きプロパティ ( http://code.google.com/p/google-web-toolkit/wiki/ConditionalProperties )を使用します。

<define-property name="ps3.user.agent" values="ps3, not_ps3" />
<property-provider name="ps3.user.agent"><![CDATA[
  {
    var ua = window.navigator.userAgent.toLowerCase();
    if (ua.indexOf('NetFront') != -1) { return 'ps3'; }
    return 'not_ps3';
  }
]]></property-provider>

<!-- Set user agent to ie6 if ps3 -->
<set-property name="user.agent" value="ie6" >
    <when-property-is name="ps3.user.agent" value="ps3" />
</set-property>

com.google.gwt.user.rebind.UserAgentPropertyGenerator の関連コード
( http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/user /rebind/UserAgentPropertyGenerator.java )
PS3 ユーザー エージェントが 'ie6' を返すようにこれを編集できますが、これはお勧めしません。

于 2011-05-03T20:28:52.463 に答える