手机检测(品牌,型号,浏览器等)


8

您使用什么来检测访客的手机,如果可能的话,该模型会被检测到吗?

目前,我们维护自己的数据库,但是由于缺乏维护它的能力,它确实落后了,因此我们决定尝试使用第三方解决方案。

这些是我的候选人,但我没有时间去尝试所有的东西:

  • DeviceAtlas - 1年个人评估,但基本许可价格可承受。他们的数据库看起来很可靠,可以每日更新,也可以由用户提供测试/更新。我现在很喜欢这个。

  • DetectRight-一位同事向我推荐了此方法,但实际上在他们的网站上找不到很多。2万个设备-真的吗?

  • WURFL-UAProf协同衍生的开源数据库。因此,基本上,如果您要使用UAProf解决方案,那么使用WURFL更好。

  • DetectMoBileBrowsers-这看起来是最简单的。太糟糕了,它取决于语言(PHP)。

请分享您的经验或建议!

Answers:


4

OMG,您真的要使自己的数据库保持最新状态吗?我为你感到抱歉

第一步:如果您只需要一个非常简单且最少的解决方案来检测品牌和型号,则可以免费使用WURFL,如果可以承受的话可以使用DeviceAtlas。第二个可能效果更好(只是我个人的看法)。

另外,请看一下这款比较器DeviceAtlas与WURFL

第二个技巧:通常,与W3C标准保持一致是一个好主意。从这种意义上讲,DDR简单API设备描述存储库简单API)是必经之路。它描述了用于访问设备描述存储库(DDR)的抽象API。

您可以在MyMobileWeb项目的一部分中找到 Java中该API的开源参考实现。它允许您访问WURFL,DeviceAtlas(不是100%肯定),W3C DDR Core词汇表(可能还包括UAProf)。这样,您可以使用统一的API(也作为REST服务提供)访问设备属性(请参阅DDR REST服务文档)。

您可以下载最新的1.2版本。我知道他们正在使用可能在十月和Rails实施中发布的新版本。

实际上,这意味着您可以使用WURFL开发应用程序,然后再切换到另一个存储库,从而使代码保持理想状态。第一次安装和使用起来比较困难,但是如果您要构建大型企业系统,则将来会节省很多时间。

我不得不说我以前曾从事过该项目,尽管通常很难阅读W3C标准,但我认为无论如何都值得一看。也许还有其他简单的DDR简单API实现。


我喜欢你的第二个建议,谢谢!有空的时候会检查一下。
syaz 2010年

8

这不是一个直接的答案,但我相信这是一个宝贵的贡献。当然,适用性取决于您的要求,但是我认为许多为消费者而开发的读者会发现它有用和相关。

在这样的程度上,我没有。

当然,用户代理检测非常适合为具有良好的,基于标准的浏览器的设备(例如Android手机,iPhone / iPod Touch等)提供优化的移动版本。

出于实际目的,“老派”移动浏览器已死。今天人们实际使用移动网络的设备具有功能强大的浏览器:WebKit,Opera和Firefox Mobile。RIM刚刚宣布了一个内置的WebKit浏览器,我认为它们是进行迁移的最后一个主要参与者。

我以为您的目标只是重定向到移动网站。如果更复杂,例如记录单个型号或跟踪细粒度统计信息,那么来自Stack Overflow的这些帖子将证明是有帮助的:


好吧,当我只在移动网站上工作时...我必须知道模型的分类等才能知道在哪里进行优先级排序。
syaz 2010年


1

WURFL的发明者Luca Passani在这里。我公司最近启动了这项服务,几乎可以免费解决这里讨论的问题。我建议您查看http://wurfl.io/

简而言之,如果您导入一个小的JS文件:

<script type='text/javascript' src="//wurfl.io/wurfl.js"></script>

您将获得一个类似于以下内容的JSON对象:

{
 "complete_device_name":"Google Nexus 7",
 "is_mobile":true,
 "form_factor":"Tablet"
}

(当然,假设您使用的是Nexus 7),则可以执行以下操作:

if(WURFL.form_factor == "Tablet"){
    //dostuff();
}

要么

modelName = WURFL.complete_device_name 

这就是您要寻找的。

谢谢

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.