我将创建我的 web 的 webapp。我听说有很多服务可以让事情变得简单:
我想使用将 HTML5/CSS/JS 包装成可部署的应用商店类型应用程序的工具创建移动应用程序,但也想将源 HTML5/CSS/JS 用于我的常规网站(AppMakr、AppsBuilder、AppGeyser...)
有一种方法可以从 JS 中判断它是在浏览器中运行还是作为移动应用程序运行?
任何提示、帮助或建议将不胜感激,如果您需要更多信息,请告诉我,我将编辑帖子。
我将创建我的 web 的 webapp。我听说有很多服务可以让事情变得简单:
我想使用将 HTML5/CSS/JS 包装成可部署的应用商店类型应用程序的工具创建移动应用程序,但也想将源 HTML5/CSS/JS 用于我的常规网站(AppMakr、AppsBuilder、AppGeyser...)
有一种方法可以从 JS 中判断它是在浏览器中运行还是作为移动应用程序运行?
任何提示、帮助或建议将不胜感激,如果您需要更多信息,请告诉我,我将编辑帖子。
要区分来自移动应用程序或移动浏览器的 http 请求,您可以使用用户代理。对于 safari/ios,各自的用户代理示例如下:
移动浏览器:
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
在这种情况下,检查最后是针对 Mobile 与“Version/5.0.2 Mobile/8H7 Safari”。
要在 android 中进行相同的检查,您可以执行以下操作:
function() isNativeApp {
return /AppName\/[0-9\.]+$/.test(navigator.userAgent);
}
在用户代理上,当尝试将内容附加到启用了 javascript 的 WebView 时。
请注意,不建议检查特定用户代理,因为版本号在不断发展,这只是您可以使用的逻辑/信息的示例。像 JQuery 这样的浏览器兼容性库提供了用于智能“浏览器”嗅探的实用程序,这应该允许您以比上述逻辑更安全的方式进行此操作。这只是您要查找的信息的概述。顺便说一句,检查特定的用户代理是一个坏主意……好吧。
参考: