【问题标题】:Redirecting to the mobile website重定向到移动网站
【发布时间】:2012-09-26 12:01:23
【问题描述】:

我已经编写了几行 java 脚本代码。但我不确定它是否正确。 几个月前,我发布了一个桌面版网站。但是当用户通过手机(如安卓、iPhone 或可能是 Windows 手机)来时,我想重定向一条新路径。这是代码:

// JavaScript Document
var uAgent = navigator.userAgent.toLowerCase();

if(uAgent.indexOf("android") > -1 || uAgent.indexOf("iphone") > -1 || uAgent.indexOf("windows phone") > -1) {
    window.location = "http://website path will come here.";
}

它是正确的代码吗?

【问题讨论】:

标签: javascript navigator


【解决方案1】:

这会起作用,但它不是一个很好的方法,原因如下:

  1. 禁用 JavaScript 的用户不会被重定向

  2. 移动用户(一些浏览器速度较慢且带宽限制有限)会先下载您的桌面页面,然后再重定向到移动网站。

如果可能的话,一种更好的方法是通过网络服务器配置来管理这个,理想情况下根本不需要任何重定向。或者,考虑向所有用户提供相同的内容并使用媒体查询更改布局。

【讨论】:

  • 或者你可以使用一个小的网关页面,当你确定用户代理时,它会重定向到桌面和移动版本,并让用户选择用户代理不明确或 javascript 是禁用。允许用户随时在两个版本之间切换在某些情况下在任何设备上也很有用。当您的网站由于某种原因加载非常缓慢时,即使是桌面用户也可能希望切换到带宽密集度较低的移动版本,而智能手机用户可能希望在他们认为自己的浏览器可以处理的情况下尝试完整版本。
  • 好的。还有一个疑问。在上面的代码中,当我检查字符串“android”时,假设找到它并且 uAgent 是 android,那么它将适用于所有 android 设备。但我希望平板设备有所不同。对于平板设备,我想显示网站的桌面版本。所以我将如何检查。任何想法。
  • 手机/平板电脑的用户代理列表会一直在变化,如果您尝试自己维护一个列表,工作量会很大。我建议您尝试找到可以为您执行此操作的现有框架(请参阅其他答案中的链接)。或者,您可以编写一些 JavaScript 来检查屏幕高度/宽度并据此做出决定。
【解决方案2】:

如果您确实需要检测移动浏览器(而不是像 Initializr 上的 Responsive template 那样制作适合移动设备的响应式布局,这种布局仅适用于移动浏览器 - 谷歌表示“移动优先”和“响应式设计”)更多示例)然后查看这些链接:

的移动浏览器 - 不仅是 iPhone、Android 和 Windows - 所以如果你要检测它们,那么你需要做对。另请参阅 jQuery Mobile,这是一个让您的生活更轻松的出色移动框架。

【讨论】:

  • 这是一个很好的资源。但所有代码都被压缩了。那么,有没有关于如何使用所有这些的文档。
【解决方案3】:
uAgent.indexOf("android") > -1

Android 不仅仅是智能手机的操作系统。它还可以在许多平板电脑上运行,这些平板电脑可以轻松处理大多数网站的桌面优化版本。我的一个朋友刚刚抱怨一些网站只为他的 GalaxyTab 提供移动版本,尽管普通版本在他的 10.1 英寸屏幕上看起来不错。

你也忘记了黑莓和塞班手机。

【讨论】:

  • 不仅是平板电脑,我还见过运行 Android 的上网本和笔记本电脑。
  • 我只想要安卓、iPhone 和 Windows 手机。我只是在做实验。顺便感谢您的回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-31
  • 1970-01-01
  • 2014-06-08
  • 1970-01-01
  • 2012-09-06
  • 2013-12-13
相关资源
最近更新 更多