移液检测冷冻

时间:2011-10-04 14:17:38

标签: mobile coldfusion detection

有没有办法检测用户是否仅使用coldfusion在移动设备上?

  1. 我没有进行移动重定向。
  2. 我正在使用CSS媒体查询来更改布局以适应屏幕宽度。
  3. 我只是想做一个简单的移动渲染这个信息,而不是将这些信息呈现给网站的某些部分而不是整个部分。 (例如:如果移动[显示jquery动画]其他显示[link]
  4. 我不想浪费时间渲染两者,如果只是对不显示的信息进行显示而无法显示。
  5. 没有javascript移动检测(人们可能在浏览器上关闭了javascript)

7 个答案:

答案 0 :(得分:9)

我在http://detectmobilebrowsers.com/处使用了代码来执行此操作。他们保持正则表达式非常流行。有关平板电脑的详细信息,如果您需要,还有移动设备。如果在UDF函数中删除,以便在进一步更改时轻松保持最新。

CFM版本:

<cfif reFindNoCase("android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino",CGI.HTTP_USER_AGENT) GT 0 OR reFindNoCase("1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-",Left(CGI.HTTP_USER_AGENT,4)) GT 0>
   <cflocation url="http://mobile.yoururl.com">
</cfif>

答案 1 :(得分:3)

我写了一篇关于这件事的博客文章!

http://www.mccran.co.uk/index.cfm/2010/6/4/Simple-Coldfusion-script-to-detect-if-a-user-is-on-a-Mobile-platform

<cfif findNoCase('Android', cgi.http_user_agent,1)>
<!--- relocate to Android version of the mobile site --->
<cflocation url="android/">
<cfelseif findNoCase('iPhone', cgi.http_user_agent,1)>
<!--- relocate to iphone version of the mobile site --->
<cflocation url="iphone/">
</cfif>

您可以从用户代理字符串轻松检测浏览器。因为我最近经历过像chrome这样的浏览器,你可以更改你的用户代理字符串:

http://www.mccran.co.uk/index.cfm/2011/9/25/Samsung-Galaxy-Tab-101-Switching-your-browser-from-mobile-view

答案 2 :(得分:1)

使用CGI.HTTP_USER_AGENT:

<cfif (CGI.HTTP_USER_AGENT is "MobileAgentOne")>

将MobileAgentOne替换为您要查找的浏览器。

快速谷歌应该为您提供当前正在使用的移动代理的充足列表,例如:http://www.useragentstring.com/pages/Mobile%20Browserlist/

如果您想要更强大一点,这里提供部分匹配,这样您就可以寻找手机系列,而不是列出100万个不同的独特移动代理:

<cfset agentList = "ASUS,AUDIOVOX,BenQ">

<cfloop list="#agentList#" index="thisAgent">
    <cfif FindNoCase(thisAgent, CGI.HTTP_USER_AGENT)>
        Found
    </cfif>
</cfloop>

答案 3 :(得分:0)

您可以检查CGI.HTTP_USER_AGENT的值,看看它是否表明客户端是移动设备。

以下是基于some Python code I found的快速摘要,但您可以执行更多高级检查:

<cfif refindNoCase
    ( 'android|blackberry|iphone|ipod|mobile|palm|phone|windows\s+ce'
    , CGI.HTTP_USER_AGENT
    )>
    probably mobile
</cfif>

答案 4 :(得分:0)

(道歉,这是一个答案,但我无法在这里发表评论。)

测试字符串'android'捕获了一堆平板电脑(motorola xoom,三星galaxy tab,asus变压器,其他来自toshiba,sony,acer等)。 Android是一个操作系统,而不是一类设备。

我认为现实的答案在很大程度上取决于您认为的“移动”设备。可以说,考虑到它们的处理能力和物理屏幕尺寸,许多平板电脑可以很好地处理“普通”(非移动)网站,因此将它们与更小,功能更少的移动电话混合在一​​起会使这些用户成为disservice

请注意,“iPhone”列在以前的几个答案中,但不是“iPad”,因此他们隐含地排除了iOS平板电脑,我认为这对Android也是正确的。

不幸的是,基于这种方法的答案要小得多。网上有各种solutions,其中一个基本版本是寻找手机这个词,并排除一些特定于平板电脑的字符串,如平板电脑,平板电脑,xoom,eeepc,传单等。但是,新设备每周都会出现,追逐最受欢迎的人将是充其量的挑战。

答案 5 :(得分:0)

detectmobilebrowsers.com解决方案是否在标题中?有没有理由不把检测线放在标题之前?我有一个框架集(我知道,不理想......)我认为框架集首先被检测到并在运行检测脚本之前加载我的框架。 (那可能吗?) 它在android的标题中工作正常,但不是kindle,ipad或iphone(我添加了一条ipad线)。

感谢阅读, LPP

答案 6 :(得分:0)

(很抱歉回答而不是评论,我无法评论或投票)

我最初喜欢mujimu的解决方案。我把它放在我的网站上,它似乎与我自己的iPhone测试很好。但是,我开始使用此http://www.mobilephoneemulator.com/进行测试,但它并不适用于大多数设备。

这就是我要做的事情(并且会做)。在谨慎的位置<cfoutput>#CGI.HTTP_USER_AGENT#</cfoutput>输出类似的内容。然后测试并记录设备输出的内容。

然后,使用这样的东西(谢谢Peter Boughton),在管道之间,使用测试中的一个独特的关键字......

<cfif refindNoCase
    ( 'distinct_keyword|android|blackberry|iphone|ipod|mobile|palm|phone|windows\s+ce'
    , CGI.HTTP_USER_AGENT
    )>
    probably mobile
</cfif>

在我的初步测试之后,这是我提出的列表。如果您认为这是准确的,请告诉我......

ARCELIK,Access,Acer,Ahong,Aiko,Airis,Airness,Alcatel,AlphaCell Wireless,亚马逊,夏新,Amoisonic,Android,AnexTek,Apple,Archos,Asmobile,Aspen,Asus,ASUSTeK COMPUTER INC。,Audiovox,Becker ,BEKO,Bellawave,BellWave,BenQ,BenQSiemens,BenQ-Siemens,Bird,Bleu,Blue Coat,B-Mobile,Bolt,Bytemobile,Capitel,Casio,CDM,CECT,CheckCom,Cingular,Cking,Compal,Compaq,CoralWeb, Cricket,Dai Telecom,Dallab,Danger,Daxian,DBTEL,Dicam,Dmobo,DoCoMo,Dopod,Doris,DreamPhone,EDL,Elite,ELSON,Emblaze,Emobile,Enteos,Era,Ericsson,Ericy,ETEN,EZIO,EZZE,Fitel ,飞,富士通,通用,通用网络浏览器,通用Windows,通用Windows Mobile,GIGABYTE,金立,谷歌,Gradiente,Grundig,海尔,Handspring,Hedy,Hei,Helio,惠普,海信,日立,惠普,HTC, HTC公司,HTIL,华为,悍马,IAC OKWAP,IAC OKWAP移动通信,Idea,iKoMo,IM,Imate,i-mate,i-mobile,Infineon,InfoSonics,Innostream,INQ Mobile,Itelco,IXI,KCM,KDDI, KDDI - SonyEricsson,KDDI-Casio,KDDI-Hitachi,KDDI-Kiocera,KDDI-Kyocera,KDDI-Panasonic,KDDI-Pantech,KDDI-Sanyo,KDDI -Sharp,KDDI-SonyEriccson,KDDI-SonyEricsson,KDDI-Toshiba,Kejian,Kisen,Klondike,KONKA,Kozi,KPT,K-Touch,Kyocera,Kyocera Wireless Corp,LCT,Lenovo,Lenovo Mobile,Lexibook,Lexus,LG, LG电子,LGE,龙虾,Longcos,LT,LXE,M3 Gate,万利达,基于MAUI的Generic,Maxon,Medion,MicroMax,Microsoft,MIO,Mio Technology,Miracle,MiTAC,Mitsubishi,Mobile Wireless Group,MOBISTEL,Modelabs, ModelLabs,Modottel,Modu,MOMO Design,Morange,Motorola,Myphone,NEC,Neonode,Newgen,Nexian,Nintendo,Nokia,Novarra,NTT DoCoMo,NTT DoCoMo FOMA 3G,O2,ONDA,Openwave,Opera,Optimay,Orange,Palm ,PalmOne,松下,Panda,Pantech,PCD,飞利浦,PhoneOne,Pirelli-Arcor,Porsche Design,Porshe,Poseidon,Psion,QCI,QMobile,Qtek,Raks,Reporo,Research In Motion Ltd.,RIM,机器人,Ron, Rover,RT,Sagem,SAMART,三星,Sanyo,SavaJe,SEC,Semc,Sendo,夏普,西门子,Skyfire,Skyspring,Skyspring Vitelcom,创维,SKYZEN,SlobTrot软件,SmartTrust,微笑,SoftBank,Sonim,索尼,索尼爱立信移动通信,SonyEricsson,Spice,Sprint,SPV,Sunrise,TCL,Techfaith,Tel.Me.,Tele com Italia,Telit,TIANYU,T-Mobile,Toplux,Toshiba,Tranxcode,TTPCom,tvCompass,tvCompass DMR1500,Ubiquam,UCWEB,Uniscope,Unistar,Uriver,Usha Lexus,Utec,UT斯达康,V3m(Metro PCS),Vacom,Velocity Mobile,Venera,Verizon,Vertu,VeryKool,VERZIOWORLD,Vitelcom,VITELCOM for Telefonica Movistar,VK,VK Mobile,Vodafone,Vodafone ZTE,Voxtel,W3C,Wapamp,Wapsilon,WAPUniverse,WellcoM,WinWAP Technologies,Wonu,XDA,Yas, Yospace Ericsson,Yospace Motorola,Yospace Nokia,Yospace Sharp,Yospace Siemens,Yospace SonyEricsson,Yulong,Zonda,ZT,ZTE,.mobi