Adobe AIR 初探
Posted on 2007-11-05 20:39 Kerwin Weng 閱讀(3810) 評(píng)論(7) 編輯 收藏 所屬分類(lèi): Javascript好像國(guó)內(nèi)對(duì)Adobe的新產(chǎn)品AIR反應(yīng)還不多,我個(gè)人試用了下覺(jué)得其實(shí)用處還是很大的,于是我就拋磚引玉寫(xiě)一篇相關(guān)介紹文章吧
AIR其實(shí)是一套框架和一個(gè)VM,它允許用戶把Javascript,HTML,CSS集成到統(tǒng)一的客戶端,在用戶桌面運(yùn)行,避免了瀏覽器差異,并且實(shí)現(xiàn)了跨平臺(tái)的通用性,同時(shí)又對(duì)Javascript功能進(jìn)行了很多擴(kuò)展,比如讀取本地磁盤(pán)文件,做跨域的遠(yuǎn)程訪問(wèn),使用多媒體文件等等(相信是flash的底層在支持),相對(duì)于兩年前的Flex,AIR在RIA領(lǐng)域無(wú)疑又是一個(gè)跨越,想象一下以后我們可以用JS+HTML+CSS來(lái)寫(xiě)基于http的遠(yuǎn)程且防火墻安全的C/S應(yīng)用了,還是蠻爽吧
Demo在這里:http://labs.adobe.com/showcase/air/?promoid=BJXTF
用JS來(lái)寫(xiě)應(yīng)用的文檔在這里:http://livedocs.adobe.com/labs/air/1/devappshtml/
Adobe AIR出新版SDK后,出乎意料的是很多之前的Demo不能跑了,會(huì)出"parsing disallowed",原因就是adobe換用了新的安全框架,禁止掉了Javascript中某些可能對(duì)其框架做出安全威脅的API,比如說(shuō)JSON的命根--eval
Adobe的官方解釋是在AIR2禁止掉了類(lèi)似eval這種動(dòng)態(tài)代碼加載技術(shù)在其Application sandbox中的運(yùn)行,解決辦法是把你有eval的應(yīng)用移到Browse sandbox中執(zhí)行,所謂的Browse sandbox意思是你的應(yīng)用主頁(yè)面是通過(guò)application.xml中配置的根頁(yè)面來(lái)用iframe引入的,在iframe引入的頁(yè)面中你就可以做eval,而把其他如跨域查詢等AIR提供的高級(jí)API操作放到根頁(yè)面中去做,然后通過(guò)一個(gè)parent/childSandboxBridge來(lái)做互相引用和傳遞數(shù)據(jù)的橋梁,但是同時(shí)你在iframe中的js也不能直接使用AIR所提供的一些高級(jí)API,比如air.trace().原文的解釋在這里 ,Adobe甚至還寫(xiě)了一篇文章來(lái)鼓吹這種方式其實(shí)更符合設(shè)計(jì)模式--根頁(yè)面負(fù)責(zé)數(shù)據(jù)傳遞,iframe頁(yè)面負(fù)責(zé)業(yè)務(wù)邏輯.但是無(wú)論如何這篇文章作為Browse sandbox的入門(mén)來(lái)講還是很值得細(xì)讀的
于是結(jié)合自己當(dāng)前的實(shí)際需要,我寫(xiě)了一個(gè)批量查詢airasia.com機(jī)票的小工具,因?yàn)閍irasia從來(lái)都是打廣告說(shuō)從多久到多久,從那里飛到那里才幾塊MYR起! 就是這個(gè)"起"字相當(dāng)關(guān)鍵......直接造成每次我去查的時(shí)候發(fā)現(xiàn)因?yàn)?已經(jīng)快滿坐"了,所以價(jià)格和平時(shí)的一樣,甚至更高,聽(tīng)同事說(shuō)他們都是先一天一天去查看哪天便宜就趕快預(yù)定,太辛苦了吧,那我要查2007-11-05到2008-01-31日的機(jī)票要花多少時(shí)間啊,而且不查到最后一天還不知道是不是最便宜的,嘲笑他們?cè)贾笪揖蜎Q定自己寫(xiě)個(gè)工具來(lái)查
所以我寫(xiě)的第一個(gè)AIR應(yīng)用就是這個(gè)AirAsiaTicketsSearch,可以批量查詢某個(gè)時(shí)間段去和某個(gè)時(shí)間段回的所有機(jī)票,并且把機(jī)票價(jià)格用jQuery.tablesort給排序出來(lái),并且用jQuery.tablesort.page做了分頁(yè)(說(shuō)句題外話,jQuery的tablesort確實(shí)很強(qiáng)大,但是在排序"1,280.00 CNY"這種數(shù)據(jù)的時(shí)候還是有問(wèn)題).另外開(kāi)發(fā)環(huán)境值得一說(shuō),無(wú)論是eclipse+aptana或者aptana standalone都一樣的,aptana就是一個(gè)Eclipse的RCP,關(guān)鍵就是aptana真的是很好用的工具,目前不僅支持AIR,而且還支持開(kāi)發(fā)Apple iPhone的應(yīng)用,只是專(zhuān)業(yè)版要收費(fèi).....
后面給出截圖,結(jié)果發(fā)現(xiàn)昨天還有295.99的機(jī)票,到了今天就漲到349.99了-_-!

AIR其實(shí)是一套框架和一個(gè)VM,它允許用戶把Javascript,HTML,CSS集成到統(tǒng)一的客戶端,在用戶桌面運(yùn)行,避免了瀏覽器差異,并且實(shí)現(xiàn)了跨平臺(tái)的通用性,同時(shí)又對(duì)Javascript功能進(jìn)行了很多擴(kuò)展,比如讀取本地磁盤(pán)文件,做跨域的遠(yuǎn)程訪問(wèn),使用多媒體文件等等(相信是flash的底層在支持),相對(duì)于兩年前的Flex,AIR在RIA領(lǐng)域無(wú)疑又是一個(gè)跨越,想象一下以后我們可以用JS+HTML+CSS來(lái)寫(xiě)基于http的遠(yuǎn)程且防火墻安全的C/S應(yīng)用了,還是蠻爽吧
Demo在這里:http://labs.adobe.com/showcase/air/?promoid=BJXTF
用JS來(lái)寫(xiě)應(yīng)用的文檔在這里:http://livedocs.adobe.com/labs/air/1/devappshtml/
Adobe AIR出新版SDK后,出乎意料的是很多之前的Demo不能跑了,會(huì)出"parsing disallowed",原因就是adobe換用了新的安全框架,禁止掉了Javascript中某些可能對(duì)其框架做出安全威脅的API,比如說(shuō)JSON的命根--eval
Adobe的官方解釋是在AIR2禁止掉了類(lèi)似eval這種動(dòng)態(tài)代碼加載技術(shù)在其Application sandbox中的運(yùn)行,解決辦法是把你有eval的應(yīng)用移到Browse sandbox中執(zhí)行,所謂的Browse sandbox意思是你的應(yīng)用主頁(yè)面是通過(guò)application.xml中配置的根頁(yè)面來(lái)用iframe引入的,在iframe引入的頁(yè)面中你就可以做eval,而把其他如跨域查詢等AIR提供的高級(jí)API操作放到根頁(yè)面中去做,然后通過(guò)一個(gè)parent/childSandboxBridge來(lái)做互相引用和傳遞數(shù)據(jù)的橋梁,但是同時(shí)你在iframe中的js也不能直接使用AIR所提供的一些高級(jí)API,比如air.trace().原文的解釋在這里 ,Adobe甚至還寫(xiě)了一篇文章來(lái)鼓吹這種方式其實(shí)更符合設(shè)計(jì)模式--根頁(yè)面負(fù)責(zé)數(shù)據(jù)傳遞,iframe頁(yè)面負(fù)責(zé)業(yè)務(wù)邏輯.但是無(wú)論如何這篇文章作為Browse sandbox的入門(mén)來(lái)講還是很值得細(xì)讀的
于是結(jié)合自己當(dāng)前的實(shí)際需要,我寫(xiě)了一個(gè)批量查詢airasia.com機(jī)票的小工具,因?yàn)閍irasia從來(lái)都是打廣告說(shuō)從多久到多久,從那里飛到那里才幾塊MYR起! 就是這個(gè)"起"字相當(dāng)關(guān)鍵......直接造成每次我去查的時(shí)候發(fā)現(xiàn)因?yàn)?已經(jīng)快滿坐"了,所以價(jià)格和平時(shí)的一樣,甚至更高,聽(tīng)同事說(shuō)他們都是先一天一天去查看哪天便宜就趕快預(yù)定,太辛苦了吧,那我要查2007-11-05到2008-01-31日的機(jī)票要花多少時(shí)間啊,而且不查到最后一天還不知道是不是最便宜的,嘲笑他們?cè)贾笪揖蜎Q定自己寫(xiě)個(gè)工具來(lái)查
所以我寫(xiě)的第一個(gè)AIR應(yīng)用就是這個(gè)AirAsiaTicketsSearch,可以批量查詢某個(gè)時(shí)間段去和某個(gè)時(shí)間段回的所有機(jī)票,并且把機(jī)票價(jià)格用jQuery.tablesort給排序出來(lái),并且用jQuery.tablesort.page做了分頁(yè)(說(shuō)句題外話,jQuery的tablesort確實(shí)很強(qiáng)大,但是在排序"1,280.00 CNY"這種數(shù)據(jù)的時(shí)候還是有問(wèn)題).另外開(kāi)發(fā)環(huán)境值得一說(shuō),無(wú)論是eclipse+aptana或者aptana standalone都一樣的,aptana就是一個(gè)Eclipse的RCP,關(guān)鍵就是aptana真的是很好用的工具,目前不僅支持AIR,而且還支持開(kāi)發(fā)Apple iPhone的應(yīng)用,只是專(zhuān)業(yè)版要收費(fèi).....
后面給出截圖,結(jié)果發(fā)現(xiàn)昨天還有295.99的機(jī)票,到了今天就漲到349.99了-_-!
