我目前正致力于为我的网络应用程序添加HTML5离线支持,并且主要采用相同的mgwt方法:
我的问题涉及第2步:在我的servlet中,我想检测为某个请求服务的排列。我现在这样做的方式是:
将此(使用简单的字符串操作(例如userAgent.contains("safari")
)映射到“代理ID”,我可以使用映射文件将其映射到排列强名称。换句话说,映射{{1 {}} Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.1)
,我可以映射(使用生成的映射文件,请参阅下面的示例)到ie6
。
15B454D690F2CCAD57F1DD809429BF42
我面临的问题:我想使用相同的方法将用户代理字符串链接到GWT使用的排列(即将<permutation name="15B454D690F2CCAD57F1DD809429BF42">
<user.agent>ie6</user.agent>
</permutation>
映射到Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.1)
)。这样,每当我的GWT更新其他排列/浏览器版本时,我就不必修改我的代码。换句话说,我不喜欢我的当前解决方案,即在我的排列映射中将servlet中的完整用户代理字符串与用户代理“id”(在我的示例中为“ie6”)进行天真匹配。
我想到的解决方案是:
答案 0 :(得分:0)
您可以利用HTML5Manifest提供的mgwt解决方案。它们有一个linker,它生成一个可以由它们提供的servlet读取的文件,并根据用户代理标题返回适当的文件列表以供浏览器缓存。
如果你想自己做,你可以根据http用户代理标题,以及gwt编译器生成的compilation-mappings.txt
文件,找出每个浏览器最合适的排列。正在使用xsiframe
链接器。