2013-07-22 77 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

相关问题