如何在JavaScript或Ruby Rails中检测来自桌面用户代理的请求?

时间:2013-10-19 09:10:26

标签: javascript ruby-on-rails ruby

如何检测特定请求是否来自桌面?

我在JavaScript中试过这个解决方案:

function isDesktop(){ 
    var isTouchDevice = function() {  return window.screenX === 0 && 'ontouchstart' in window || 'onmsgesturechange' in window; };
    var isDesktop = !isTouchDevice() ? true : false;
    }
isDesktop();

它可以工作,但这仅适用于触摸和非触摸设备,而今天的一代有触摸笔记本电脑和屏幕。

任何人都可以建议一些解决方案,我们可以适当地检测除了所有其他设备之外的桌面吗?

1 个答案:

答案 0 :(得分:0)

我在红宝石中找到了一个技巧,并且确实起了作用。使用browser gem告诉您请求设计是否为“移动or平板电脑”。

如果它不是移动设备而不是平板电脑设备,我只是否定响应并将其视为桌面。

有关更多说明,请参阅安装gem后的代码段。 这是reference

  

需要“浏览器”

     

browser = Browser.new(:ua => request.user_agent,:accept_language =>   “EN-US”)

  if!browser.mobile? &安培;&安培; !browser.tablet?
     @device =“桌面”
  端