我在我的GWT應用程序(從GAE運行)中爲桌面和移動客戶端使用不同的實現。一種解決方案是GWT中的用戶代理檢測。該解決方案將Desktop和Mobile實施加載到客戶端中。在GAE上向Mobile和Desktop客戶端返回不同的GWT插件
更清潔的解決方案將是服務器servlet上的用戶代理檢測。此解決方案僅返回客戶端的正確實施。
如何從GAE返回這個不同的實現?
我在我的GWT應用程序(從GAE運行)中爲桌面和移動客戶端使用不同的實現。一種解決方案是GWT中的用戶代理檢測。該解決方案將Desktop和Mobile實施加載到客戶端中。在GAE上向Mobile和Desktop客戶端返回不同的GWT插件
更清潔的解決方案將是服務器servlet上的用戶代理檢測。此解決方案僅返回客戶端的正確實施。
如何從GAE返回這個不同的實現?
我已經做到了。你聲明的歡迎頁面映射到爲servlet的
<welcome-file-list>
<welcome-file>/urlToSomeServlet</welcome-file>
</welcome-file-list>
在這個servlet你的userAgent值的網址:
String userAgent = request.getHeader("User-Agent");
然後,根據該值,您可以向前或重定向到您的桌面網頁或移動頁面:
request.getRequestDispatcher("desireedHtmlPage.html").forward(request,response);
或
response.sendRedirect("desireedHtmlPage.html");
轉發將使瀏覽器認爲他仍然處於最初的請求,它仍然會顯示歡迎頁面url,而做重定向會實際告訴瀏覽器他被重定向到另一個資源,以便顯示資源的url在導航欄中。
你看過GWT的MobileWebApp樣本嗎?
這裏也有一個很好的例子GWT 2.1 Seminar 2010。這使用服務器端用戶代理檢查回退查詢參數(m = 1)。它在應用程序gwt.xml文件中執行此操作。