我们只需要支持IE8和IE9,而不支持其他浏览器。当我使用Chrome或Firefox时,我得到的是一个空白页面(主页)。有没有办法检测或被告知没有找到该浏览器的js文件?或者我是否必须在主机页面中查看用户代理并在浏览器不是IE8或IE9时显示消息?
答案 0 :(得分: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>
IMO,我认为nocache.js
引导脚本应该有一种机制,可以在没有特定浏览器的排列时提醒用户。也许打电话给gwt:onLoadErrorFn
(请参阅我在gwt issue#8135的评论)