1

IE8 と IE9 のみをサポートする必要があり、他のブラウザーはサポートされていません。Chrome または Firefox を使用すると、空白のページ (ホスト ページ) しか表示されません。そのブラウザのjsファイルが見つからなかったことを検出または通知する方法はありますか? または、ブラウザーが IE8 または IE9 でない場合、ホスト ページでユーザー エージェントを自分で見て、メッセージを表示する必要がありますか?

4

1 に答える 1

3

この問題を解決するにはさまざまな方法がありますが、通常の gwt の方法はDeferred-Bindingを使用することです

アプリ コードをロードするためのクラスを作成しGWT.create()onModuleLoad. 次に、順列ごとにクラスの異なる実装を持つことができます。

  package mynamespace.client;
  ...

  public class MyEntryPoint implements EntryPoint {

    public void onModuleLoad() {
      // create the appropriate implementation of the App class
      App app = GWT.create(App.class);
      // call the method to load the application.
      app.onLoad();
    }

    // Default implementation
    public static class App {
      public void onLoad() {
        Window.alert("This App is only supported in IE");
      }
    }

    // Implementation for IE
    public static class AppIE extends App {
      public void onLoad() {
        Window.alert("This is a supported Browser");
      }
    }
  }

.gwt.xmlファイル内の各ユーザー エージェントごとに使用する実装を定義します。

  <replace-with class="mynamespace.client.MyEntryPoint.AppIE">
    <when-type-is class="mynamespace.client.MyEntryPoint.App"/>
    <any>
         <when-property-is name="user.agent" value="ie6"/>
         <when-property-is name="user.agent" value="ie8"/>
         <when-property-is name="user.agent" value="ie9"/>
    </any>
  </replace-with>

nocache.jsIMO、ブートストラップ スクリプトには、特定のブラウザに順列がない場合にユーザーに警告するメカニズムが必要だと思います。たぶん呼び出します( gwt issue#8135gwt:onLoadErrorFnの私のコメントを参照してください)

于 2013-10-10T05:52:15.860 に答える