我們知道,在UIKit中的UIWebView雖然已經提供了很多功能了,比如JavaScript和Objc之間的通信。但是考慮到一個問題,如果在Hybrid App中,如何才能實現JavaScript調用本地的一些硬件設備,如攝像頭、音頻、還有本地存儲呢?首先想到的就是規定一些協議,在UIWebViewDelegate 中去接收JavaScript發來的消息并且由Objc代碼去控制本地的數據庫訪問,控制攝像頭和音頻等等。但是諸如如何在WebView上顯示本地攝像頭視頻,實現起來還是比較困難的。那么問題來了,如何實現這些協議,并且有廣泛的適用性,讓廣大的開發者去使用這一套框架?
下面主要介紹一個開源的框架: Cordova,它的前身是PhoneGap,被Apache收購之后就改成Cordova了.
1、安裝cordova需要先安裝node.js;
注:一般選擇之前畢竟穩定的版本,新版我安裝的時候出現安裝失敗等問題
2、如果你沒有安裝git client,需要下載并安裝一個git客戶端。
3、使用node.js的依賴包管理工具npm進行Cordova的安裝
打開終端輸入如下命令進行安裝:
$ sudo npm install -g cordova
注:$ 不可復制,此處是為了提示后面的代碼是終端命令
卸載的方式為
$ sudo npm uninstall cordova -g
4、新建一個Cordova的項目
$ cd Desktop/ //進入桌面
$ cordova create Demo qianghui Tianxia //第一個參數為文件夾名, 第二個參數為App id, 第三個參數為project名
創建完成提示: Creating a new cordova project.
注:以上為創建好的文件夾內部目錄
hooks:存放自定義cordova命令的腳本文件。每個project命令都可以定義before和after的Hook,比如:before_build、after_build。沒用過,不展開了。
platforms:平臺目錄,各自的平臺代碼就放在這里,可以放一下平臺專屬的代碼,現在這個目錄應該是空的.
plugins:插件目錄,安裝的插件會放在這里。
www:最重要的目錄,存放項目主題的HTML5和JS代碼的目錄。app一開始打開的就是這個目錄中index.html文件。
config.xml:主要是cordova的一些配置,比如:項目使用了哪些插件、應用圖標icon和啟動頁面SplashScreen,修改app的版本,名字等信息,還有平臺的配置。
5、建立完成之后我們可以加入iOS項目
$ cd Demo/ //進入剛剛創建好的文件夾目錄下
$ cordova platform add ios //添加平臺支持
//各個平臺
$ cordova platform add ios
$ cordova platform add amazon-fireos
$ cordova platform add android
$ cordova platform add blackberry10
$ cordova platform add firefoxos
$ cordova platform add wp8
$ cordova platform add windows8
$ cordova platform add amazon-fireos
$ cordova platform add android
$ cordova platform add blackberry10
$ cordova platform add firefoxos
6、構造App ,build iOS項目
cordova build
7、運行效果
創建的時候遇到多個問題,所以進行多方參考
參考來自:
1.http://www.lxweimin.com/p/53256ece38a7 使用Cordova進行iOS開發
2.http://www.cnblogs.com/piaoqingsong/p/5205186.html 在已有 Xcode 項目中 加入Cordova框架
3.http://www.tuicool.com/articles/NbMNbm