配置PhoneGap 到iOS

來源:互聯網
上載者:User

標籤:class   http   java   tar   get   使用   



下載 phonegap
安裝phonegap之前需要NodeJS環境,下載NodeJS並安裝.安裝環境的目的是為了使用phonegap命令列.

3. 安裝phonegap使用命令
    $phonegap create my-app
    $cd my-app
     $phonegap run iOS
這樣就會自動建立ios環境,可以在目錄my-app/platforms/中找到ios目錄.這樣系統就自動為我們建立了一個ios的phonegap項目.此項目在預設目錄中.
4. 自訂項目建立路徑
命令: phonegap create <項目目錄> <項目ID> <項目名稱>
自動建立了helloword目錄,然後cd到platforms目錄中,執行$phonegap run iOS命令.這樣就自訂建立了phonegap項目.
從目錄可以看出,widget相關項目檔案都放在staging檔案目錄裡,在www檔案夾中有具體的編程檔案.還有各種移動平台的適配資訊及資源檔.

ios相關檔案
Classes:
    代理和主介面類
Plugins:空目錄
Other Sources:
    pch檔案和程式入口檔案
Resources:
    資源檔:圖片,plist
Frameworks:類庫

程式運行index.html 的原因:
CDVConfigParser類中有個屬性startPage,在方法loadSettings中判斷,如果沒有設定指定開始頁面就會執行預設頁。
    

項目運行依賴於phonegap中提供的類庫,但是在項目裡面找不到相關檔案,經過分析發現在Build Phases中有Copy www Directory項,其中Shell寫的是/bin/sh 執行的shell在cordova/lib/copy-www-build-step.sh中。測試發現sh是unix執行指令碼的可執行檔。
cordova/lib/copy-www-build-step.sh在/bin/sh -c     目錄中。
在這個sh檔案中有一句代碼cordova/lib/copy-www-build-step.sh,這個目錄在Phonegap建立的時候建立的,位於項目裡的platforms/ios/cordova/lib下。ios目錄就是程式根目錄,所以設定設定檔cordova/lib/copy-www-build-step.sh可以用這個路徑找到,sh找到這個檔案之後會執行copy-www-build-step.sh裡面的路徑配置代碼。

 





Cordova就是Phonegap被Adobe收購後改的名字

一、JS跟OC通訊原理:
1、JS 使用了兩種方式來與 Objective-C 通訊,一種是使用 XMLHttpRequest 發起請求的方式,另一種則是通過設定透明的 iframe 的 src 屬性.
1) JS 端使用 XMLHttpRequest 發起了一個請求,而在 Objective-C 端使用一個 NSURLProtocol 的子類來檢查每個請求,如果地址是 /!gap_exec 的話,則認為是 Cordova 通訊的請求,直接攔截,攔截後就可以通過分析請求的資料,分發到不同的外掛程式類(CDVPlugin 類的子類)的方法中.

2)在 JS 端建立一個透明的 iframe,設定這個 ifame 的 src 為自訂的協議,而 ifame 的 src 更改時,UIWebView 會先回調其 delegate 的 webView:shouldStartLoadWithRequest:navigationType: 方法

二、OC跟JS通訊原理
通過UIWebView的方stringByEvaluatingJavaScriptFromString:執行一段JS代碼,可以達到OC與JS通訊的效果。

三、JS 請求 Objective-C,Objective-C 返回結果給 JS
IOS原生代碼拿到 callbackId、service、action 及 actionArgs 後,會做以下的處理:
1.根據 service 參數找到對應的外掛程式類
2.根據 action 參數找到外掛程式類中對應的處理方法,並把 actionArgs 作為處理方法請求參數的一部分傳給處理方法
3.處理完成後,把處理結果及 callbackId 返回給 JS 端,JS 端收到後會根據 callbackId 找到回調方法,並把處理結果傳給回調方法。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.