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