【问题标题】:Letting people revert back to desktop site from mobile site让人们从移动网站恢复到桌面网站
【发布时间】:2012-11-06 02:28:05
【问题描述】:

我的网站会将访问者返回到一个单独的移动网站,这在阅读了一些在线指南后似乎相当简单。

但是,我希望人们能够点击移动网站上的链接,然后将他们带到桌面网站。

我看到的问题是,如果我链接回桌面网站,如果他们在移动设备上,它只会将它们重定向回来?

我怎样才能解决这个问题?

【问题讨论】:

  • 您也许可以向我们展示您目前是如何从桌面网站重定向到移动网站的。
  • 为什么您甚至需要建立单独的移动和桌面网站?您可能应该看看媒体查询:google.pl/search?q=media+queries
  • @RuFFCut - 问题已经解决。用你的服务器端编程语言按照我的流程图(见下面我的答案),实现移动重定向启蒙。
  • 感谢您的帮助!

标签: javascript html mobile


【解决方案1】:

你真的想在服务器端做这种事情,而不是在客户端。问题是您强迫移动用户(连接可能不好)首先下载整个桌面站点(可能超过 1MB),只是为了让 javascript 重定向生效。

到那时,您的移动访问者可能已经失去耐心并已经离开了。

我在这里写了关于这个过程的博客:http://www.9xb.com/blog-2012-08-6-common-pitfalls-when-deploying-a-mobile-site-and-how-they-can-be-avoided/ - 如果你跳到文章的底部,你会看到一个描绘整个过程的流程图。此特定方法使用 cookie,但可以对其进行调整。此流程图的美妙之处在于它独立于语言 - 您可以使用任何服务器端编程风格来开发它。

为方便起见,我在下面附上了流程图(尽管我强烈建议您阅读这篇文章):

http://www.9xb.com/wordpress/wp-content/uploads/2012/08/mobile-deployment-small.png

所有这些工作的替代方法是开发一个移动优先的响应式网站。不知道你的情况,我就这样吧——它并不总是适用于每一个场景。

【讨论】:

  • 每个人都支持这个问题。严重地。这是问题的正确答案
  • 网址和图片不再可用...(2012 年的任何东西都没有了。)
【解决方案2】:

将重定向到移动设备设为可选(即桌面页面顶部的链接),或将移动设备重定向仅放在初始入口点,即mydomain.com。如果他们去mydomain.com/index.html,那么不要重定向。这样一来,您的“返回桌面”链接就可以只是指向 index.htmlindex_mobile.html 或任何您发送给他们的移动体验的普通链接。

就个人而言,我更希望布局足够流畅以适应任何浏览器,那么一开始就没有问题。请记住,现在有各种尺寸的平板电脑可以搅浑移动浏览领域。

【讨论】:

    【解决方案3】:

    很遗憾,您无法在 window.location 更改后检查引荐来源网址。但是你可以添加一个标签然后检查它。

    if(window.location.hash == "#stayHereDude"){
        // do nothing, or whatever
    } else {
        window.location = "mobile/index.html";
    }
    

    然后,您将在移动页面上创建指向 /index.html#stayHereDude 的链接。

    【讨论】:

      【解决方案4】:

      在进行移动重定向的主页上,您需要检查 href 中是否存在将它们标记为来自移动网站的内容。在我的例子中,我使用了从移动网站到主页的链接,其末尾带有 ?m=0。例如:http://www.yoursite.com/?m=0

      然后,您在主页上的重定向之前检查 href 中的 m=0。如果有,请不要重定向,如果没有,请重定向到移动设备。

      if (window.location.href.match("m=0")) { 
      } else {
          window.location = "http://www.yoursite.com/mobilesite";
      }
      

      如果您只是从一个页面重定向到您的移动网站,这很有效。

      【讨论】:

        【解决方案5】:

        您可以使用 Cookie、会话或本地存储,这样当用户单击“转到桌面站点”时,它会设置一个值。

        假设您将名称设置为“mobileOff”,并将值设置为“1”或“true”,当手机上的用户点击“转到桌面站点”时。然后,无论您在哪里进行移动检查,添加一个条件来检查用户的 cookie/session/localStorage 中的 mobileOff,如果它设置为 true,则绕过自动移动重定向,否则,加载主桌面站点。

        【讨论】:

          【解决方案6】:

          您应该结合用户代理方法来检测带有查询字符串的设备以实现此类功能。 所以让我们假设你的链接是

          site/default.aspx
          

          如果有人点击此页面,请检查用户代理并在响应中提供适当的站点或事件,如果设备检测到移动设备是否只是简单地重定向到 m.yourdomain.com/site/default.aspx
          但如果有人点击页面 site/default.aspx?type=desktop 然后覆盖检查用户代理的行为并呈现桌面站点。

          永远不要先加载桌面网站,然后再通过 javascript reditect 加载到移动网站。使用用户代理服务器端执行此操作。

          【讨论】:

            【解决方案7】:

            静态

            /site/index.html
            /site/mobile/index.html
            

            然后你可以使用一系列的东西。

            1. Cookie
            2. 会话状态
            3. 用户登录和偏好设置(甚至保存数据库)

            如果您使用的是静态网站,则变得更加困难,因为它会因 JavaScript 重定向和两个重复页面而变得混乱。发布您的代码并告诉我们您当前的设置方式,我将更新我的解决方案。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-03-02
              • 1970-01-01
              • 2013-07-07
              • 1970-01-01
              • 2012-06-28
              • 1970-01-01
              相关资源
              最近更新 更多