2013-07-22 104 views
2

我將創建我的網絡的Web應用程序。我聽說了很多簡單的服務:如何知道我是在手機上運行我的網站還是作爲移動應用程序運行?

我想使用將HTML5/CSS/JS包裝到可部署應用程序商店類型應用程序中的工具來創建移動應用程序,但也希望使用源HTML5/CSS/JS爲我的傳統網站(AppMakr,AppsBuilder,AppGeyser ...

有一種方法可以告訴從JS是否它在瀏覽器中運行或作爲移動應用程序?

任何提示,幫助或建議將不勝感激,如果你需要更多的信息,讓我知道,我會編輯帖子。

+0

你的意思是在PC中移動或瀏覽器瀏覽器? –

+0

@ tato469 - 我認爲OP意味着任何瀏覽器(移動或PC)與使用[Sencha Touch](http://www.sencha.com/products/touch)或[PhoneGap](http ://phonegap.com/about/) - 再次閱讀第二段。 – nnnnnn

+0

我不是該領域的專家,但我認爲你必須在這種情況下做2個網絡應用程序。如果不是這種情況,你可以在這裏查看http://www.javascripter.net/faq/operatin.htm你可以得到設備的操作系統。 –

回答

1

要說明來自移動應用程序或移動瀏覽器的http請求之間的區別,您可以使用用戶代理。用於狩獵/ IOS相應的用戶代理實例如下:

移動Browswer:

Mozilla/5.0 (iPad; U; CPU OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari 

移動應用:

Mozilla/5.0 (iPad; U; CPU OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile 

在這種情況下,檢查被移動與「版本/ 5.0 .2 Mobile/8H7 Safari「。

做出同樣的檢查在Android中,你可以做到以下幾點:

function() isNativeApp { 
    return /AppName\/[0-9\.]+$/.test(navigator.userAgent); 
} 

用戶代理,試圖將內容啓用JavaScript的網頁視圖追加時。

請注意,檢查特定用戶代理是不可取的,因爲版本號不斷髮展,這只是您可以使用的邏輯/信息的一個示例。像JQuery這樣的瀏覽器兼容性庫提供了用於智能「browswer」嗅探的實用程序,它可以讓你以比上述邏輯更安全的方式進行操作。這只是您要查找的信息的概述。順便說一下,檢查特定的用戶代理是一個糟糕的想法......好的一點。

參考文獻:

Detect inside Android Browser or WebView

Does UIWebView send the same User-Agent in the Request Headers as mobile Safari?

+0

真的非常感謝您的完整答覆! :d – harrison4

相關問題