【问题标题】:Detect Which Application (Web, Mobile or Touch Browser) is Loading Web Page?检测哪个应用程序(Web、移动或触摸浏览器)正在加载网页?
【发布时间】:2018-08-01 17:46:10
【问题描述】:

如果您查看图像,则在 3 个应用程序(Web、Mobile 和 Touch Browser)之间存在共享网页。我需要为每个应用程序唯一地报告网页。所以如果网页A被加载了,就需要为每种类型的应用加载不同的JS库。目前,JS 引导加载程序文件处理加载正确 JS 库的逻辑,但这是一对一的关系。我现在需要一种方法来确定哪个应用程序正在加载网页并加载适当的库(DTM 库但不相关)。该解决方案必须驻留在 JS 引导加载程序文件逻辑中。我正在研究使用 navigator 对象来检测哪种类型的应用程序正在请求网页,但不确定这是否可行?也许特征检测是另一种方式,但不确定这如何/是否适用于应用程序?有什么想法吗?

【问题讨论】:

  • 有没有办法让应用设置网页上的JS可以读取的变量?
  • 我认为 location.protocol 对移动应用程序有帮助,但我在查找有关 Touch Browser 的任何信息时遇到了很多问题。

标签: javascript web mobile web-applications


【解决方案1】:

您可能想看看这篇文章:http://www.stucox.com/blog/you-cant-detect-a-touchscreen/

据我所知,没有好的/可靠的方法可以专门检测触摸设备,即使可以,您如何区分手机和 HP Spectre 笔记本电脑?

对 UserAgents 的嗅探可以得到一些你想要的结果,但它被认为是一个次优的解决方案。

Cloudflare 使您能够为移动设备提供不同的子域,但我不确定它们使用什么标准。

屏幕宽度是检测您的内容是否适合的可靠方法。

您可以在 javascript 中通过检测屏幕宽度并重定向它们来执行此操作,但加载页面仅重定向它们会非常低效,因此您可能需要查看服务器端检测:https://webplatform.github.io/docs/concepts/Detecting_device_and_browser/

希望能有所帮助。

【讨论】:

    猜你喜欢
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    相关资源
    最近更新 更多