自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Mac上開發(fā)基于Worklight的移動(dòng)應(yīng)用

移動(dòng)開發(fā)
蘋果的 iPhone 和 iPad 作為流行的移動(dòng)終端,擁有大量的客戶群體。為了在 Mac 上開發(fā)基于 Worklight 的移動(dòng)應(yīng)用,就需要在 Mac 機(jī)器上搭建一套完整的開發(fā)環(huán)境。

文章將從安裝 Xcode 入手,完成 Worklight 開發(fā)環(huán)境在 Mac 上的搭建;然后開發(fā)簡(jiǎn)單的程序,并且通過 Xcode 在模擬器上運(yùn)行基于 iPhone 的程序;最后將介紹物理機(jī)和 Mac 連接方式,完成在 Mac 上搭建 Worklight 環(huán)境的全部工作。

在 Mac 上搭建 Worklight 開發(fā)環(huán)境

在當(dāng)今流行的移動(dòng)終端中,蘋果的產(chǎn)品占有大量的市場(chǎng)份額,其中 iPhone 和 iPad 作為兩個(gè)重要的產(chǎn)品,對(duì)于手機(jī)客戶端應(yīng)用的開發(fā)者來說,是必須需要考慮的環(huán)境。但是傳統(tǒng)的開發(fā)模式,不但需要學(xué)習(xí) Objective-C 以及相應(yīng)的 API,而且程序完成以后,蘋果公司還有嚴(yán)格的界面審查工作,只有驗(yàn)證合格,才可以發(fā)布到 App Store 上。同時(shí),iPhone 和 iPad 作為分辨率完全不同的兩種終端,需要考慮各自的界面設(shè)計(jì),這就極大限制了開發(fā)企業(yè)級(jí)程序的能力。

Worklight 作為一個(gè)移動(dòng)程序的開發(fā)平臺(tái),通過不同的環(huán)境設(shè)置,提供了開發(fā) iPhone 和 iPad 應(yīng)用的便利模式。用戶可以在 Windows 環(huán)境中,將混合模式的應(yīng)用開發(fā)完畢,然后生成相應(yīng)環(huán)境的代碼,傳輸?shù)?Mac 上,利用 Xcode 完成生成代碼的編譯和運(yùn)行工作。

但是上述的形式很繁瑣,開發(fā)如果有改動(dòng),就需要在 Windows 上進(jìn)行修改,然后將內(nèi)容部署到 Mac 機(jī)器上,再使用 Mac 連接 Windows 端的 Worklight 服務(wù)器進(jìn) 行調(diào)試。更復(fù)雜的情況是,如果應(yīng)用需要一定的本地功能,就需要在 Windows 和 Mac 上依次修改代碼,這種耗時(shí)的迭代過程,是開發(fā)應(yīng)用不可忍受的。所以為了更好的開發(fā)基于 Worklight 的 iPhone(iPad)應(yīng)用,在 Mac 搭建一套完整的環(huán)境顯得十分重要。

本文將利用 Worklight 提供的默認(rèn)配置,進(jìn)行環(huán)境搭建,搭建完成后,環(huán)境的整體架構(gòu)如圖 1 所示。

圖 1. Mac 上 Worklight 的架構(gòu)

從架構(gòu)圖可以看到,Mac 上搭建環(huán)境的優(yōu)勢(shì)有以下三點(diǎn):

  • 開發(fā)者可以直接在 Mac 上通過 Eclipse 開發(fā)混合模式的應(yīng)用,然后部署到 Xcode 上,通過 Xcode 的模擬器或者真實(shí)的機(jī)器,完成應(yīng)用的開發(fā)。
  • 調(diào)試多樣化:程序的調(diào)試可以在系統(tǒng)默認(rèn)的瀏覽器上進(jìn)行,也可以在 Xcode 的模擬器上運(yùn)行,還可以在真機(jī)上運(yùn)行,提供了多樣的調(diào)試方式。
  • 部署簡(jiǎn)潔:當(dāng)系統(tǒng)的代碼發(fā)生變化時(shí),通過 Eclipse 的插件,可以自動(dòng)部署到 Xcode 上,這樣就簡(jiǎn)化了手動(dòng)部署帶來的問題,而且,當(dāng)用戶在不同版本(iPhone 和 iPad)上切換時(shí),Eclipse 也會(huì)自動(dòng)完成這個(gè)過程。

Xcode 的安裝

為了運(yùn)行相應(yīng)的客戶端程序,或者和真實(shí)的終端相連,安裝 Xcode 是必須的。在安裝客戶端之前,需要先從蘋果的網(wǎng)站上下載安裝程序,其過程如下:

  • 訪問蘋果的 開發(fā)者網(wǎng)站
  • 注冊(cè)為 免費(fèi)的開發(fā)用戶
  • 利用注冊(cè)的用戶進(jìn)行登錄,并且從 網(wǎng)頁 上下載 Xcode(本文以 4.2.1 for Lion 為基礎(chǔ))

在安裝 Xcode 時(shí),可能會(huì)碰到安裝失敗的問題,具體的問題描述,查看 鏈接。這個(gè)問題是因?yàn)榘惭b包下載后沒有及時(shí)安裝,簽名過期導(dǎo)致的,最簡(jiǎn)單的解決辦法就是修改 Mac 的系統(tǒng)時(shí)間(系統(tǒng)偏好設(shè)置 -> 日期與時(shí)間),將系統(tǒng)時(shí)間往回?fù)芤欢ǖ娜掌凇?/p>

如果要更新系統(tǒng)已經(jīng)安裝的 Xcode,那么需要執(zhí)行如下的命令進(jìn)行反安裝。

清單 1. 反安裝 Xcode

  1. sudo /Developer/Library/uninstall-devtools --mode=all  
  2. rm -rf Install\ Xcode.app  

在清理完成后,就可以安裝新的 Xcode 了#p#

Worklight 的安裝

在 Mac 上搭建開發(fā)環(huán)境和 Window 上類似,但是有以下幾點(diǎn)是不同的:

  • JDBC 驅(qū)動(dòng)的配置:因?yàn)橐话闱闆r下,下載的內(nèi)容將被放在 Mac 的下載目錄下。這個(gè)目錄的位置,和用戶本身相關(guān),例如當(dāng)用戶名為 user1 時(shí),相應(yīng)的路徑為:/Users/user1/Downloads/${JDBC_FOLDER}/${JDBC_JAR}
  • Worklight 的啟動(dòng)和關(guān)閉:在路徑 /Users/user1/Applications 下,安裝了完整的 Worklight,它的目錄結(jié)構(gòu)和 Windows 相似,但是啟動(dòng)和關(guān)閉 Worklight 的命令,分別是 Start Server.command 和 Stop Server.command

應(yīng)用程序的開發(fā)

為了更好的顯示 iPhone 和 iPad 兩種不同分辨率終端的效果,應(yīng)用程序?qū)⑹褂貌煌牟季殖尸F(xiàn)頁面的內(nèi)容。整個(gè)程序用于模擬顯示設(shè)定終端的偏好,在 iPhone 環(huán)境下,主菜單將首先被顯示,當(dāng)某項(xiàng)具體的菜單被點(diǎn)擊后,顯示在這個(gè)菜單下可以設(shè)置的內(nèi)容;用戶可以點(diǎn)擊回退按鈕,返回菜單頁。在 iPad 環(huán)境下,菜單顯示在頁面的左邊,當(dāng)點(diǎn)擊菜單后,可設(shè)定的內(nèi)容顯示在右邊,不提供回退按鈕。

基于 Eclipse 平臺(tái)開發(fā)的 Hybrid 程序

在 Eclipse 上開發(fā)混合模式的程序,對(duì)于 Worklight 來說,是一件很簡(jiǎn)單的事情。但是為了提高開發(fā) iPhone 程序的效率,在開發(fā)之前需要引入以下的內(nèi)容:

  • Dojo Mobile 框架:混合模式的手機(jī)應(yīng)用,需要解決的一個(gè)主要問題就是讓用戶在體驗(yàn)上接近本地程序,Dojo Mobile 在這方面做了很好的努力,可以參加其 主頁
  • Ajax 方式:因?yàn)榛旌夏J街校撁娴那袚Q主要通過 Ajax 方式實(shí)現(xiàn),所以用戶需要了解通過 Ajax 方式和后臺(tái)進(jìn)行訪問的方法。雖然 Worklight 提供的默認(rèn)訪問方式就是 Ajax,但是在示例中,將使用 Dojo 的 Ajax 方式,基礎(chǔ)內(nèi)容可以查看 Ajax with Dojo
  • Worklight 環(huán)境:因?yàn)樾枰獏^(qū)分 iPad 和 iPhone 的環(huán)境,所以在示例中必然需要設(shè)定環(huán)境參數(shù),只有這樣,才能生成不同的部署代碼。

創(chuàng)建混合模式的應(yīng)用過程可以參見 第一個(gè)程序 中混合模式的介紹,在本文中,因?yàn)樾枰獎(jiǎng)?chuàng)建兩個(gè)不同的環(huán)境,所以對(duì)于各自環(huán)境的設(shè)定和其目錄結(jié)構(gòu)需要作一下說明:

  • common/css:應(yīng)用中所需公共 CSS 文件的存放目錄,其中 WorklightMacApp.css 是用于填寫公共的 CSS 屬性,在 iPhone 和 iPad 的環(huán)境中均可使用
  • iPhone/css:特定環(huán)境所需 CSS 文件的存放目錄,在完整的 CSS 文件中,放在 common 的 CSS 文件之后,所以相同屬性會(huì)覆蓋 common 中的定義
  • common/images:應(yīng)用需要的圖片
  • common/js:應(yīng)用中所需公共 JS 文件的存放目錄,其中 WorklightMacApp.js 用于存放公共的 JS 方法,auth.js 用于存放權(quán)限管理的 JS 方法,messages.js 用于存放本地化的 JS 方法
  • iPhone/js:用于編寫特定環(huán)境需要的 JS 方法,并且覆蓋在 common 下的同名 JS 方法

圖 2 展示了在混合模式下,開發(fā)者需要關(guān)注的內(nèi)容。

圖 2. 不同環(huán)境的同名 JS 文件
 

從上述的文件結(jié)構(gòu)中,可以看到,因?yàn)榄h(huán)境不同,存在三個(gè)名稱完全一致的 JS 文件。在 common 文件夾下,文件中存在一個(gè) wlCommonInit 函數(shù),它的清單如下:

清單 2. wlCommonInit 函數(shù)

  1. function wlCommonInit(){  
  2.  (function() {  
  3.    require(  
  4.      ["dojox/mobile/parser", "dijit/dijit", "dojox/mobile/deviceTheme",  
  5.       "dojox/mobile/compat", "dojox/mobile", "dojox/mobile/FixedSplitter",  
  6.       "dojox/mobile/FixedSplitterPane", "dojox/mobile/ScrollableView"],  
  7.      function(parser, deviceTheme) {  
  8.        parser.parse();  
  9.      }  
  10.    );  
  11.  })();  
  12. }  

這個(gè)函數(shù)用于初始化公共的內(nèi)容,在本文中它的作用就是引入需要的 Dojo 內(nèi)容,然后當(dāng)所有的基礎(chǔ)內(nèi)容被讀入到頁面后,Dojo Mobile 框架將會(huì)解析節(jié)點(diǎn)的內(nèi)容,并且按照開發(fā)者的需求生成各種控件(比如視圖、標(biāo)題、按鈕等等)。#p#

在 iPhone 和 iPad 文件夾下,存在著一個(gè) wlEnvInit 函數(shù),它的作用是按照不同的環(huán)境調(diào)用各自的初始化函數(shù),以 iPhone 為例,它的初始化函數(shù)如下:

清單 3. iPhone 的 wlEnvInit 函數(shù)

  1. function wlEnvInit(){  
  2.   wlCommonInit();  
  3.  
  4.   setTimeout(loadLoginPage, 1000);  
  5.  
  6.   function loadLoginPage() {  
  7.     var url = "html/iPhone.html";  
  8.  
  9.     dojo.xhrGet({  
  10.       url: url,  
  11.       handleAs: "text",  
  12.       load: function(response, ioArgs){  
  13.         dojo.body().innerHTML = response;  
  14.         dojo.parser.parse();  
  15.       }  
  16.     });  
  17.   }  
  18.  }  

從清單中可以了解到,應(yīng)用通過調(diào)用異步請(qǐng)求獲取頁面內(nèi)容,將其插入瀏覽器后,調(diào)用 Dojo 的解析函數(shù),轉(zhuǎn)化為手機(jī)應(yīng)用的樣式后,再顯示。

最后需要提及的是主頁面的代碼,它最關(guān)鍵的內(nèi)容如下:

清單 4. HTML 中的內(nèi)容

  1. <body onload="WL.Client.init({})" id="content" style="display: none"> 

所以整個(gè)混合模式的應(yīng)用初始化過程分為四步:

  1. 應(yīng)用根據(jù)配置訪問默認(rèn)頁面(就是 HTML 文檔),在 onload 函數(shù)中,Worklight 將調(diào)用環(huán)境默認(rèn)的初始化函數(shù),同時(shí)隱藏整個(gè) body 內(nèi)容
  2. 根據(jù)環(huán)境,相應(yīng)的 wlEnvInit 函數(shù)被調(diào)用
  3. 在 wlEnvInit 中調(diào)用了通用的初始化函數(shù) wlCommonInit
  4. 全部初始化完成后,Dojo 會(huì)解析頁面內(nèi)容,完成 Dojo Mobile 的初始化后,顯示相應(yīng)的頁面

基于 Xcode 模擬器的運(yùn)行

在 Mac 上運(yùn)行 Worklight 程序,根據(jù)開發(fā)環(huán)境的不同有兩種方式。

如果 Worklight 是在 Windows 版本的 Eclipse 上開發(fā),需要訪問 iPhone(或者 iPad)文件夾下的 package 目錄,將下面的一個(gè) zip 文件傳送到 Mac 上,然后解壓。解壓后的文件系統(tǒng),是一個(gè)完整的本地 Xcode 程序,雙擊項(xiàng)目文件(.xcodeproj)后,就會(huì)在 Xcode 的 IDE 中打開一個(gè)項(xiàng)目,運(yùn)行調(diào)試。

如果 Worklight 是在 Mac 上開發(fā)的,那么過程要簡(jiǎn)單的多。首先,在 Worklight 上完成應(yīng)用的部署,然后按住 control 鍵后點(diǎn)擊 iPad(iPhone)文件夾,選擇 Run As -> Xcode Project,項(xiàng)目就會(huì)自動(dòng)被部署到 Xcode 的 IDE 中。

在 Xcode 的 IDE 中點(diǎn)擊運(yùn)行,就會(huì)根據(jù)應(yīng)用的不同,啟動(dòng)不同的模擬器(iPhone 或者 iPad 版本),運(yùn)行程序。圖 4 顯示了在 Mac 版本的 Eclipse 上部署到 Xcode 上的命令界面。

圖 3. 在 Mac 上部署 Xcode 應(yīng)用
 

雖然開發(fā)應(yīng)用的過程簡(jiǎn)單,但是在實(shí)際過程中有幾點(diǎn)需要注意:

  1. 因?yàn)槭褂昧?Dojo Mobile 來提供良好的用戶體驗(yàn),所以當(dāng)項(xiàng)目部署到 Worklight 的服務(wù)器上時(shí),Dojo Mobile 的包也需要被部署。完整的 Dojo 包比較大,部署時(shí)間較長(zhǎng),所以建議界面開發(fā)部分單獨(dú)完成,當(dāng)界面完成后,才整合到 Worklight 的應(yīng)用中
  2. 在 Eclipse 的插件庫中,有一個(gè) Dojo 的插件,安裝后可以方便的通過拖拽方式實(shí)現(xiàn)界面的布局,并且會(huì)根據(jù)需要用到的模塊,自動(dòng)導(dǎo)入相應(yīng)需要的 JS 文件。建議開發(fā)者去 鏈接 上下載使用
  3. 在 iPad 的環(huán)境下,模擬器啟動(dòng)后,默認(rèn)顯示方式是豎屏,為了達(dá)到橫屏的顯示效果,可以點(diǎn)擊快捷鍵 command+ →將模擬器變成橫屏,需要重置時(shí),仍然點(diǎn)擊相同的快捷鍵

在物理機(jī)上運(yùn)行

在物理機(jī)上直接調(diào)試 Xcode 程序,是一個(gè)比較復(fù)雜的過程,它的步驟簡(jiǎn)略的說可以分為六步:

  1. 在 App Store 的網(wǎng)站上,注冊(cè)一個(gè)付費(fèi)用戶,需要 99 美元一年
  2. 利用付費(fèi)賬號(hào)創(chuàng)建證書
  3. 將需要連接的真實(shí)設(shè)備添加到和賬號(hào)綁定的測(cè)試設(shè)備中(99 美元的賬戶最多可以綁定一百個(gè))
  4. 創(chuàng)建配置文件
  5. 通過配置文件,將應(yīng)用安裝到綁定的測(cè)試設(shè)備上
  6. 在真實(shí)設(shè)備上進(jìn)行調(diào)試

調(diào)試方法介紹

在 Mac 上進(jìn)行調(diào)試,除了 WL 平臺(tái)提供的多種調(diào)試程序的方法外,還可以使用 Xcode 進(jìn)行調(diào)試。在 Xcode 中,用戶需要確認(rèn)調(diào)試的默認(rèn)模擬器;然后,點(diǎn)擊運(yùn)行,在模擬器上運(yùn)行程序;通過點(diǎn)擊斷點(diǎn)按鈕來激活或者廢棄斷點(diǎn),完成調(diào)試過程;調(diào)試完成后,可以點(diǎn)擊停止 按鈕結(jié)束應(yīng)用在模擬器上的運(yùn)行。

結(jié)束語

在 Mac 上搭建 Worklight 的開發(fā)平臺(tái),為方便的開發(fā)混合模式的蘋果應(yīng)用做了很好的準(zhǔn)備。通過基于 Eclipse,Xcode 和 Worklight 的整合環(huán)境,用戶可以在 Mac 機(jī)上開發(fā)應(yīng)用,進(jìn)行調(diào)試,而不需要像在 Windows 上一樣,把壓縮后的文件拷貝到 Mac 上,再解壓調(diào)試。這大大提高了開發(fā)的效率。

在 Mac 上搭建環(huán)境的另外一個(gè)重要意義在于,用戶在開發(fā)本地功能時(shí),可以方便的直接在 Mac 上開發(fā)并調(diào)用模擬器進(jìn)行測(cè)試,而不是分別在 Windows 和 Mac 的環(huán)境下開發(fā),然后整合。這樣便于項(xiàng)目的代碼管理和環(huán)境統(tǒng)一。

責(zé)任編輯:佚名 來源: 風(fēng)信網(wǎng)
相關(guān)推薦

2012-12-10 10:53:04

IBMdW

2012-12-03 13:49:01

IBMdW

2012-11-30 10:31:44

IBMdW

2012-07-19 09:26:42

IBMWorklight

2012-06-21 13:46:22

javascriptworklight嵌入式系統(tǒng)

2009-07-22 14:50:54

ibmdwWeb2.0Apache

2012-09-19 15:21:48

Worklight

2012-09-19 15:29:26

Worklight適配器

2012-11-15 10:20:55

IBMdw

2012-11-05 10:36:40

IBMdw

2012-09-19 14:27:16

Worklight

2012-02-07 08:58:21

IBM移動(dòng)中間件收購

2012-10-09 10:58:56

IBMdw

2011-11-23 10:06:32

Azure微軟移動(dòng)應(yīng)用

2015-03-11 11:43:02

APICloud移動(dòng)應(yīng)用開發(fā)平臺(tái)

2014-08-05 10:40:02

移動(dòng)應(yīng)用開發(fā)者

2011-08-29 17:27:47

HTML 5交互移動(dòng)應(yīng)用

2012-02-14 09:59:39

Titanium MoTitaniumMac

2012-09-04 10:20:31

IBMdw

2015-01-14 09:41:28

跨平臺(tái)移動(dòng)應(yīng)用Linux開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)