做无线应用不像普通互联网应用那么简单,其中最麻烦的要数客户端适配的问题。全世界的手机千千万万种,屏幕尺寸、分辨率、颜色数、浏览器、操作系统、虚拟机版本等等全都不一样。要以统一的服务器端架构满足这么多种不同的客户端,并非易事。其中最困难的就是,你怎么知道客户端的配置是什么样的?
当然,HTTP协议提供了UA header,根据这个,可以拿到终端的具体型号,下面要做的就是,根据这个型号找到各种各样的规格属性了。
WURFL正是做这个事情的,它的全称是Wireless Universal Resource File,主页架在Source Forge上,
http://wurfl.sourceforge.net/。可以把WURFL理解成一个开源的免费的很大的XML文件,里面收集了世界上所有手机的技术参数。它是由全世界千千万万的好心人,大部分都是无线开发领域的技术人员,利用课余时间辛辛苦苦收集来的。项目的负责人叫Luca
Passani,一个意大利帅哥。
WURFL真正体现了开源的精神,“源于大众,服务大众”。这是任何一个封闭的组织或者团体无法实现的。比如说,微软会把它弄成一个自己私有格式的二进制数据库,附带一个3D效果的图形化管理界面,至少一千页以上的技术文档,外加C++的API和在线激活系统,文件量600M左右,售价200美刀。现在的普遍使用的版本应该是WURFL XP,新的WURFL Vista已经上市,但由于价格涨到了2000美刀,且存在一些安全漏洞,所以买者寥寥。大多数穷苦的IT人员更愿意选用盗版的上海VLK版WURFL Vista……如果是中国政府就更不用说了,联合全世界从来就不是它的目标,它更愿意关起门来在自己家里搞搞和谐,抓抓黑砖窑包身工什么的。
闲话少说,下面就来扫一眼WURFL文件。它是个XML文件,目前的大小约为4M。格式如下:
<?xml version="1.0" encoding="UTF-8"?>
<wurfl>
<version>...</version><!--这里说的是WURFL的版本信息,跳过-->
<devices><!--这个元素里包含了所有的设备信息,devices里包含了成千上万个device元素-->
<device user_agent="Nokia3100" fall_back="nokia_generic_series40" id="nokia_3100_ver1">
<!--这是一个设备,user_agent给出了UA信息,id给出了设备在WURFL中的ID号,fall_back给出了它的父设备的ID号-->
<!--设备的属性是继承的,如果当前设备里找不到某个属性,就继承它父设备的,直到最终的根设备-->
<group id="product_info"><!--属性按照类别进行分组,一个device下面可以有很多的group-->
<capability name="model_name" value="3100"/><!--capability代表一个属性,每个group里可以有很多capability-->
...
</group>
...
</device>
...
</devices>
</wurfl>
整个WURFL就是这么简单,稍懂XML的人都可以写个几十行的小程序读取里面的信息。由于XML的可读性,闲着没事用记事本把这个文件打开,瞅瞅自己的手机是个啥性能,也挺好玩的。
分享到:
相关推荐
详细的浏览器版本检测,功能库强大,api易懂。wurfl,浏览器版本检测的不二选择
WURFL is a set of proprietary application programming interfaces (APIs) and an XML configuration file which contains information about device capabilities and features for a variety of mobile devices...
详细的浏览器版本检测,功能库强大,api易懂。wurfl,浏览器版本检测的不二选择
com.scientiamobile wurfl-core 1.8.0.0 浏览器检测 jar包
所有移动终端类型都在这个官方的文件中了,了解最新动态,请电邮联系
2016-05-23 由官方scientiamobile更新的php api
NULL 博文链接:https://crazysky.iteye.com/blog/1179069
工具(C)将WURFL XML移动浏览器数据库拆分为带有符号链接(NTFS存根)的单个设备文件,以减少访问时间和服务器负载。 包括一个简单PHP库/ API作为如何访问数据的示例,以及一个示例phtml文件。
Tera-WURFL可以使用PHP,MySQL数据库后端和标准化的无线通用资源文件(WURFL)来识别移动设备的功能。
用于.NET(C#)的WURFL API。 该API设计专注于WURFL的发展,包括用于数据访问抽象层的模块和用于UAgent进行启发式搜索的模块。
Dinfo 是一个独立的 Java servlet,带有可用的 WAR 包,用于提供对 WURFL 信息的访问。
SMIL, Voxeo's Prophecy server, VoiceXML (VXML), grXML, Frost library, WALL, WURFL, SMS, MMS, mobile payment gateways, mobile widgets, Mobile AJAX, Android, Google Gears, and Dojo Offline. What you ...
移动Web的使用在呈爆炸式增长。很快,人们会更愿意在手机和平板电脑而不是PC机上浏览网页。...使用*的开发技术,包括响应式Web设计,以及利用WURFL完成服务器端设备检测;通过图片、谜题、故事和问答轻松学习。
关于手机型号和类型的wurfl数据
Use the latest development techniques—including Responsive Web Design and server-side device detection with WURFL Learn quickly through images, puzzles, stories, and quizzes We think your time is too...
终端适配配置 wurfl 配置文件 其中包含很多设备的配置
使用Jaxb 1.0.4的WURFL Java API。 这个新的wurfl访问api具有比其他功能更多的功能。 使用较少的内存来存储用于不同设备的层次结构级别的数据,并加快搜索速度,从而允许用户还过滤xml。
Java Swing GUI,用于查看,搜索和编辑WURFL移动设备信息。
用于OpenDDR和WURFL的Java API的读取,写入和重构操作。