面向JavaScript開發人員的Adobe AIR與Dreamweaver

來源:互聯網
上載者:User

作者:David Tucker

 

Adobe AIR對於HTML/JavaScript應用程式與案頭的整合有著出色的支援,但除了所有附加功能之外,還需要一些其他工具和技術。這篇文章探討了使用HTML/JavaScript的Web開發與使用同樣工具的應用程式開發之間的差異。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

需求

為了更好地學習本文,您需要以下軟體和檔案:

Adobe AIR

下載

Dreamweaver CS3

試用

購買

Adobe AIR Extension for Dreamweaver CS3

下載

範例檔案

exercise_files_for_js.zip (ZIP, 308K)

必備知識

本教程要求理解Dreamweaver CS3的工作原理,並掌握JavaScript的中級知識。

為AIR設定Dreamweaver

要開始進行AIR開發,最簡單的方法之一就是安裝Adobe AIR Extension for Dreamweaver CS3。

安裝必備項

請安裝本文簡介頁面提到的AIR運行時。這將使您能夠按照本教程中展示的範例逐步操作。

此外,還必須安裝Adobe AIR Extension for Dreamweaver CS3。這一擴充使您能夠在Dreamweaver內構建、測試和部署AIR應用程式。下載本擴充後,雙擊它。這將開啟Adobe Extension Manager。如果此前您安裝過任何用於Dreamweaver CS3的AIR擴充,將提示您本操作將覆蓋某些檔案。由於正在安裝的是最新版本的擴充,因此覆蓋舊檔案不會造成問題。

Dreamweaver AIR工作流程

AIR擴充的安裝不會立即改變Dreamweaver的布局。可以從功能表列中選擇Commands項,確認安裝已成功完成。您應看到新增了兩個選項:AIR Applications Settings和Create AIR File。如果您使用的是Windows機器,則應看到如圖1所示的菜單。

 

                         <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> 

 

                                      圖1. Dreamweaver CS3中的Site菜單

 

驗證安裝之後,可以開始構建您的第一個AIR應用程式。儘管這項任務初看起來可能有些令人畏縮,但很快您就會發現,Dreamweaver會替您完成大多數配置。

AIR應用程式設定

Web應用程式和傳統型應用程式之間的一個主要差異就在於配置。對於傳統型應用程式來說,有一些必須解答的新問題。這個應用程式應該有多大。視窗看起來應該是怎樣的。它應該定位在螢幕的什麼位置。程式表徵圖應該是什麼樣子。有許多類似的問題需要回答,之後才能打包應用程式並將其發送給使用者。

在AIR中,這些配置項均由一個稱為應用程式描述項檔案的XML檔案處理。下面是一個簡單的應用程式描述項檔案:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

可以看到,您必須回答的許多問題都在這個短短的檔案中得到瞭解答。例如,應用程式的寬度和高度以及應用程式主視窗有關的其他屬性都是在<initialWindow>標記內定義的。完整的應用程式描述項檔案要比這長得多,包含用於自訂程式表徵圖、視窗定位和自訂檔案類型的選項。

為您開發的每一個AIR應用程式建立一個這樣的檔案看上去有些繁瑣,但Dreamweaver使您可以輕鬆建立應用程式描述項檔案。如果您有一個在Dreamweaver CS3上開放的網站,可以單擊Command菜單中的AIR Application Settings項。這將開啟圖2所示視窗。

 

          

          圖2. Dreamweaver CS3中的AIR Application and Installer Settings對話方塊

 

 

 

其中許多設定都可保留預設值,但必須為各AIR項目更改ID和Name值。ID是用於將您的應用程式與其他AIR應用程式區分開來的惟一值——即便它們具有相同的名稱。許多開發人員都為其ID使用反向網域名稱解析(reverse-dns)的形式。例如,我的域是davidtucker.net,我可能會為應用程式選擇net.davidtucker.SampleApplication這樣的ID。如果開發人員運用此慣例,就能夠最大程度地消除應用程式ID重複的可能性。

對於應用程式的發布和更新來說,ID尤為重要。在稍後的部分中,您將瞭解更多內容。有必要瞭解,在建立應用程式時應設定ID,而且在此後不應再更改。如果更改,就無法在Adobe AIR內使用更新架構等功能。

建立AIR應用程式

既然已經完成了準備工作,就可以將一個Web應用程式置入Adobe AIR,查看其運行方式。為在Dreamweaver內完成此任務,首先需要為您的項目建立一個新網站。在本文附帶的練習檔案中,您可以看到一個名為Sample Application Template的檔案夾。將所有這四個檔案都放到site檔案夾中。

接下來,選擇Site > AIR Application and Installer Settings。確保四個檔案都出現在本對話方塊的Incluede Files部分(如圖3所示)。如果其中某些檔案未出現在此列表中,可以單擊加號並選擇缺少的檔案添加它們。

                    

                     圖3. 使用Dreamweaver CS3包含AIR應用程式中的檔案

 

完成此任務之後,單擊Preview按鈕。祝賀您,您剛剛在Dreamweaver CS3中測試了您的第一個AIR應用程式。還有一個地方必須在打包和部署此應用程式之前進行檢查,也就是安全性。

AIR中的安全性

對於Web開發人員來說,思維方面的一項重大改變就是要認識到,他們在AIR中開發的是傳統型應用程式,而不是Web應用程式。傳統型應用程式有一些Web應用程式沒有的特殊許可,例如檔案系統互動。出於此原因,必須給予特別關注,確保AIR應用程式未受任何外部源的威脅,同時確保您的AIR應用程式來自預計的正確發行者。因此,您會發現AIR內部的認證和安全性沙箱。

備忘:如需進一步瞭解AIR中的安全性,請參見Lucas Adamski的文章Introducing the Adobe AIR security model。

自簽認證

由於傳統型應用程式可能會給使用者的電腦造成風險,因此有必要找到某種方法,驗證AIR應用程式發行者的身份。與其他一些傳統型應用程式平台類似,Adobe AIR也要求您的應用程式具備認證。但這並不表示您必須使用商業認證。Adobe實際上也允許開發人員使用自簽認證。在Dreamweaver中,您可以單擊AIR Application and Installation視窗中Digital Signature欄位旁邊的Set按鈕,為您的應用程式建立認證。此操作將開啟一個視窗,您需要單擊Create按鈕。接下來出現的視窗允許您填寫關於您和您的組織的資訊(參見圖4)。完成此步驟之後,Dreamweaver就會通知您認證是否已正確建立。

備忘:如需進一步瞭解簽名應用程式的基本原理,請參見Todd Prekaski的文章Digitally signing Adobe AIR applications中的Why sign an application。

    

                    圖4. Dreamweaver CS3中的認證建立視窗

現在,您可以在AIR Application Settings視窗中設定數位簽章。您需要確認並牢記建立認證時所用的密碼,每次建立.air檔案時都必須輸入此密碼。

商業簽署憑證

商業簽署憑證為應用程式的終端使用者確認您的身份。這非常重要,在使用者安裝自簽AIR應用程式和商業簽名應用程式時,所出現的安裝螢幕是不同的。圖5和圖6展示了這種差別。

             

                           圖5. 自簽認證應用程式的安裝視窗

 

              

                         圖6. 商業簽署憑證應用程式的安裝視窗

 

商業簽署憑證由Thawte等企業提供。不同於建立自簽認證的過程,商業認證的發行者會處理認證建立過程。

安全性沙箱

沙箱為一個頁面或應用程式中的資產分配一個具體的許可權組。應用程式描述項檔案中引用的根HTML檔案將自動置於應用程式沙箱中。應用程式的根檔案將位於應用程式沙箱中。

應用程式沙箱提供了最廣泛的功能。實際上,對於應用程式沙箱中的內容,只有一項約束:eval方法的使用受嚴格限制。Eval方法仍然可以計算字面值,但函數調用無法通過JSON傳遞。由於這是傳統型應用程式而非Web應用程式,核心AIR API調用需要受到保護。如果遠程伺服器收到威脅,發送以下JSON語句會怎樣。

{ air.NativeApplication.nativeApplication.exit() }

這將導致應用程式在未發出警報的前提下退出。許多JavaScript開發人員都不會將此編寫到他們的代碼中,但許多JavaScript架構都實現了這種功能。在這種情況下,開發人員可以使用遠程沙箱,使用parentSandboxBridge和childSandboxBridge在兩種不同的沙箱之間通訊。

使用進階模板建立apProject

用於在不同的沙箱之間進行處理的功能可能令人迷惑,因此Adobe提供了一種模板,專門處理此類應用程式。可在本文附帶的練習檔案中找到此模板。此模板是將現有Web應用程式與AIR相整合的理想起點。

掌握細節

AIR中的沙箱是一個複雜的主題。對於許多應用程式來說,這種基本的應用/非應用沙箱方法都足以應對,但在資料從多個資料來源動態載入時,就需要對AIR內的安全性模型有更加透徹的理解。在Developing AIR Applications with HTML and Ajax 中,您會看到有整整一章的內容專門介紹安全性模型。Lucas Adamski最近還撰寫了一篇文章,介紹了AIR安全性模型及其背後的基本原理。

調試應用程式

調試是Ajax開發的重要部分。有許多調試工具可用,但許多開發人員都單純依靠Firebug(Joe Hewitt開發的一種Firefox外掛程式)之類的外掛程式。如何調試AIR Ajax應用程式。Firebug不是理想選擇,那麼開發人員應該做些什麼。Adobe在為AIR開發人員設計工具時考慮了這方面的問題,提供了兩種選擇。

簡單調試

簡單調試是獲得某部分資訊的簡單方法。在很多情況下,如果調試單個的代碼塊,只需採用這種方法即可。在AIR中,有許多方法可實現簡單調試,但常用的方法有兩種:調用alert方法,使用AIR內的跟蹤功能。Alert方法的功能與它在標準JavaScript Web應用程式中的功能相同,但air.trace是AIR API專屬的。Air.trace方法允許開發人員通過ADL(AIR Debug Lanuncher)發送跟蹤語句。Dreamweaver不支援此方法,因此您往往需要考慮複雜的調試解決方案——Introspector。

使用AIR introspector實現複雜調試

對於幾乎所有情況,AIR Introspector都提供了比前述任何方法更高、更具體的調試層級。Introspector提供了Firebug之類的標準工具中的大多數功能。Introspector包含五個選項卡(參見圖7):

·         Console:控制台將接收來自AIR的錯誤、警告和通知以及由使用者發送的自訂訊息。開發人員可以使用五種不同的方法向控制台發送資料。

o air.Introspector.Console.log('Sample Log Item')

o air.Introspector.Console.warn('Sample Warning Item')

o air.Introspector.Console.info('Sample Info Item')

o air.Introspector.Console.error('Sample Error Item')

o air.Introspector.Console.dump( object )

HTML:HTML選項卡提供了一種方法,可以使用樹型布局查看HTML並查看XML中某個節點的DOM屬性和computed style元素。將滑鼠移動到一個XML節點上時,應用程式中的對應內容將反白。

DOM:DOM選項卡提供了視窗的所有DOM屬性的列表。

Assets:Assets選項卡提供了一種方法,可查看您的應用程式中使用的所有檔案,包括映像、JavaScript檔案和CSS檔案。

Source:source選項卡不僅使您能夠查看應用程式的實際原始碼(以及JavaScript檔案、CSS檔案和應用程式描述項檔案的原始碼),還允許您查看解析後的原始碼。

XHR:XHR選項卡允許您查看所有XMLHTTPRequests

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.