做無線應(yīng)用不像普通互聯(lián)網(wǎng)應(yīng)用那么簡單,其中最麻煩的要數(shù)客戶端適配的問題。全世界的手機(jī)千千萬萬種,屏幕尺寸、分辨率、顏色數(shù)、瀏覽器、操作系統(tǒng)、虛擬機(jī)版本等等全都不一樣。要以統(tǒng)一的服務(wù)器端架構(gòu)滿足這么多種不同的客戶端,并非易事。其中最困難的就是,你怎么知道客戶端的配置是什么樣的?
當(dāng)然,HTTP協(xié)議提供了UA header,根據(jù)這個(gè),可以拿到終端的具體型號(hào),下面要做的就是,根據(jù)這個(gè)型號(hào)找到各種各樣的規(guī)格屬性了。
WURFL正是做這個(gè)事情的,它的全稱是Wireless Universal Resource File,主頁架在Source Forge上,
http://sourceforge.net/projects/wurfl/files/
。可以把WURFL理解成一個(gè)開源的免費(fèi)的很大的XML文件,里面收集了世界上所有手機(jī)的技術(shù)參數(shù)。它是由全世界千千萬萬的好心人,大部分都是無線開發(fā)領(lǐng)域的技術(shù)人員,利用課余時(shí)間辛辛苦苦收集來的。項(xiàng)目的負(fù)責(zé)人叫Luca Passani,一個(gè)意大利帥哥。
WURFL真正體現(xiàn)了開源的精神,“源于大眾,服務(wù)大眾”。這是任何一個(gè)封閉的組織或者團(tuán)體無法實(shí)現(xiàn)的。比如說,微軟會(huì)把它弄成一個(gè)自己私有格式的二進(jìn)制數(shù)據(jù)庫,附帶一個(gè)3D效果的圖形化管理界面,至少一千頁以上的技術(shù)文檔,外加C++的API和在線激活系統(tǒng),文件量600M左右,售價(jià)200美刀。現(xiàn)在的普遍使用的版本應(yīng)該是WURFL XP,新的WURFL Vista已經(jīng)上市,但由于價(jià)格漲到了2000美刀,且存在一些安全漏洞,所以買者寥寥。大多數(shù)窮苦的IT人員更愿意選用盜版的上海VLK版WURFL Vista……如果是中國政府就更不用說了,聯(lián)合全世界從來就不是它的目標(biāo),它更愿意關(guān)起門來在自己家里搞搞和諧,抓抓黑磚窯包身工什么的。
閑話少說,下面就來掃一眼WURFL文件。它是個(gè)XML文件,目前的大小約為4M。格式如下:
<?xml version="1.0" encoding="UTF-8"?>
<wurfl>
<version>...</version><!--這里說的是WURFL的版本信息,跳過-->
<devices><!--這個(gè)元素里包含了所有的設(shè)備信息,devices里包含了成千上萬個(gè)device元素-->
<device user_agent="Nokia3100" fall_back="nokia_generic_series40" id="nokia_3100_ver1">
<!--這是一個(gè)設(shè)備,user_agent給出了UA信息,id給出了設(shè)備在WURFL中的ID號(hào),fall_back給出了它的父設(shè)備的ID號(hào)-->
<!--設(shè)備的屬性是繼承的,如果當(dāng)前設(shè)備里找不到某個(gè)屬性,就繼承它父設(shè)備的,直到最終的根設(shè)備-->
<group id="product_info"><!--屬性按照類別進(jìn)行分組,一個(gè)device下面可以有很多的group-->
<capability name="model_name" value="3100"/><!--capability代表一個(gè)屬性,每個(gè)group里可以有很多capability-->
...
</group>
...
</device>
...
</devices>
</wurfl>
整個(gè)WURFL就是這么簡單,稍懂XML的人都可以寫個(gè)幾十行的小程序讀取里面的信息。由于XML的可讀性,閑著沒事用記事本把這個(gè)文件打開,瞅瞅自己的手機(jī)是個(gè)啥性能,也挺好玩的。
WURFL整個(gè)開源項(xiàng)目的地址: http://sourceforge.net/projects/wurfl/files/
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
