[英]Detecting GWT permutation on server based on user agent
我目前正在為Web應用程序添加HTML5脫機支持,並且大多數情況下都遵循mgwt的相同方法:
我的問題涉及步驟2:在我的servlet中,我想檢測為某個請求提供服務的排列。 我現在這樣做的方式是:
將此映射(使用簡單的字符串操作(例如, userAgent.contains("safari")
)到“代理ID”,我可以使用映射文件將其映射到置換強名稱。換句話說,映射Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.1)
到ie6
,我可以將其映射(使用生成的映射文件,請參見下面的示例)到15B454D690F2CCAD57F1DD809429BF42
。
<permutation name="15B454D690F2CCAD57F1DD809429BF42"> <user.agent>ie6</user.agent> </permutation>
我面臨的問題:我想使用將用戶代理字符串鏈接到排列的方法與GWT使用的方法相同(即將Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.1)
映射到ie6
)。 這樣,無論何時我的GWT更新為其他排列/瀏覽器版本,我都不必修復代碼。 換句話說,我不喜歡當前的解決方案,即在排列映射中將Servlet中的完整用戶代理字符串與用戶代理“ id”(在我的示例中為“ ie6”)天真地匹配。 我想到的解決方案是:
你可以采取的優勢HTML5Manifest提供解決方案mgwt 。 它們具有一個鏈接器 ,該鏈接器生成一個文件,該文件可以由它們提供的servlet讀取,並根據用戶代理標頭返回適當的文件列表以供瀏覽器緩存。
如果您想自己做,則可以基於http用戶代理標頭以及gwt編譯器生成的xsiframe
compilation-mappings.txt
文件(如果使用的是xsiframe
每個瀏覽器最合適的排列xsiframe
鏈接器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.