將cordova內(nèi)嵌到本地工程:http://www.reibang.com/p/6a16c260851e
一:安裝cordova
npm install -g cordova
報(bào)錯(cuò):
Please try running this command again as root/Administrator.
解決:
sudo npm install -g cordova
更新cordova和項(xiàng)目:
sudo npm update -g cordova
sudo npm update -g cordova@3.1.0-0.2.0
查看當(dāng)前運(yùn)行的cordova的版本號
cordova -v
查看最新版本的cardova
npm info cordova version
更新目標(biāo)平臺(tái)
cordova platform update ios --save
二:創(chuàng)建一個(gè)新的項(xiàng)目
cordova create (在名為)hello(的文件夾下創(chuàng)建名為) HelloWorld(的工程)
默認(rèn)情況下谣沸,會(huì)創(chuàng)建一個(gè)基于web的應(yīng)用乳讥,其主頁面為www/index.html。
進(jìn)入項(xiàng)目目錄:
cd hello
三:添加需要的平臺(tái)-ios
cordova platform add ios
添加完成之后吐咳,可以打開platforms里面對應(yīng)的平臺(tái)工程会宪,運(yùn)行正常肖卧。
四:為building創(chuàng)建環(huán)境,可略掸鹅。使用xcode是一樣的塞帐。
1:檢查當(dāng)前環(huán)境
cordova requirements
顯示如下:
Requirements check results for ios:
Apple macOS: installed darwin
Xcode: installed [object Object]
ios-deploy: not installed
ios-deploy was not found. Please download, build and install version 1.9.2 or greater from https://github.com/phonegap/ios-deploy into your path, or do 'npm install -g ios-deploy'
CocoaPods: installed [object Object]
Error: Some of requirements check failed
2:如果此時(shí)運(yùn)行
cordova run ios
報(bào)錯(cuò) No target specified for emulator.
3:根據(jù)提示安裝ios-deploy
sudo npm install -g ios-deploy
4:此時(shí)警告:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!! WARNING: You are on OS X 10.11 El Capitan or greater, you may need to add the
!!!! WARNING: `--unsafe-perm=true` flag when running `npm install`
!!!! WARNING: or else it will fail.
!!!! WARNING: link:
!!!! WARNING: https://github.com/phonegap/ios-deploy#os-x-1011-el-capitan
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
使用sudo npm install -g ios-deploy --unsafe-perm=true
提示安裝成功
/usr/local/bin/ios-deploy -> /usr/local/lib/node_modules/ios-deploy/build/Release/ios-deploy + ios-deploy@1.9.2 added 1 package in 12.755s
5:此時(shí)運(yùn)行cordova run ios依然報(bào)錯(cuò)
No target specified for emulator
所以只能制定一個(gè)target了。
查看所有支持的target列表:cordova emulate ios --list
然后制定一個(gè)模擬器運(yùn)行:cordova emulate ios --target ='iPhone-X, 11.1'
報(bào)錯(cuò):Device type "com.apple.CoreSimulator.SimDeviceType.=iPhone-X" could not be found.
此時(shí)巍沙,我已經(jīng)想說臟話了葵姥,但是我提醒自己,淡定句携,我是淑女榔幸。
6:我直接用Xcode就可以了,我為什么要裝逼。削咆。牍疏。。拨齐。鳞陨。
此時(shí)我想我剛才安裝的ios-deploy也許不是運(yùn)行模擬器的東東,查之奏黑。用來跑真機(jī)的炊邦。。熟史。馁害。。蹂匹。
SO,安裝ios-sim:npm install ios-sim -g
7:列出支持的模擬器列表:
ios-sim showdevicetypes
8:此時(shí)再次運(yùn)行:
cordova run ios --target='iPhone-5, 9.3'
9:模擬器正常啟動(dòng)碘菜,完美。
10:跑真機(jī)
cordova run --device
如果只這樣就運(yùn)行成功了限寞,只能說明在項(xiàng)目中忍啸,所有的關(guān)于真機(jī)運(yùn)行的選項(xiàng)配置的都是正確的。否則會(huì)飄紅~~~~所以履植,要么工程里面配置正確计雌,要么在cordova run --device后面配置相關(guān)參數(shù),同時(shí)也可以配置不同sheme下不同的參數(shù)玫霎。這個(gè)跟xcodebuild自動(dòng)打包異曲同工凿滤,<font color=#DC143C>有待深入學(xué)習(xí)</font>。
cordova run --release --buildConfig='build.json'
五:index.html
如果此時(shí)想要看看內(nèi)嵌頁面的執(zhí)行的效果庶近,只要修改index.html文件就可以了翁脆。
如:http://www.reibang.com/p/d24219c008b6
默認(rèn)情況下使用的內(nèi)嵌頁面都是本地頁面,可以修改為使用線上的URL鼻种。<font color=#DC143C>待學(xué)習(xí)</font>
六:添加插件
- 插件查詢地址:http://cordova.apache.org/plugins/
- 關(guān)鍵字支持列表:http://cordova.apache.org/docs/en/latest/guide/support/index.html#core-plugin-apis
- 終端查找:
cordova plugin search camera
也是會(huì)開啟插件查詢地址去搜索的反番。 - 查看當(dāng)前都支持哪些插件:
cordova plugin ls
- 使用plugman用來統(tǒng)一管理plugin<font color=#DC143C>待學(xué)習(xí)</font>
地址:http://cordova.apache.org/docs/en/latest/plugin_ref/plugman.html - 添加一個(gè)插件:
cordova plugin add cordova-plugin-camera
,一旦執(zhí)行這個(gè)命令叉钥,那么之前在index.html中做的修改則完全被覆蓋罢缸,還原成最開始的樣子。
七:
Using merges to Customize Each Platform
<font color=#DC143C>待學(xué)習(xí)</font>
八:目錄分析
myapp/
|-- config.xml
|-- hooks/
|-- merges/
| | |-- android/
| | |-- windows/
| | |-- ios/
|-- www/
|-- platforms/
| |-- android/
| |-- windows/
| |-- ios/
|-- plugins/
|--cordova-plugin-camera/
- config.xml文件分析
配置應(yīng)用屬性投队,包括webview初始化的參數(shù)枫疆,插件的配置等。 - www/
Web的相關(guān)文件蛾洛,html、css、js等文件轧膘。大多數(shù)的代碼都在這個(gè)文件夾下钞螟。與config.xml文件一樣會(huì)在根目錄下存在一個(gè),在添加平臺(tái)后谎碍,會(huì)在平臺(tái)目錄下拷貝一份鳞滨。通常情況下如果跨平臺(tái)開發(fā),只修改根目錄下的文件即可蟆淀。版本控制時(shí)也需要跟蹤根目錄下的文件拯啦。 - platforms/
平臺(tái)代碼。如果沒有必要不要修改這個(gè)文件夾下的內(nèi)容熔任,且這個(gè)文件下的代碼會(huì)在添加插件后重置褒链。 - plugins/
插件目錄 - hooks/
命令行工具類,應(yīng)該是個(gè)簡化工作的好幫手疑苔,<font color=#dd1234>有待學(xué)習(xí)</font>甫匹,但是在那之前要先學(xué)習(xí)一下js啊惦费!累覺不愛兵迅!
http://cordova.apache.org/docs/en/latest/guide/appdev/hooks/index.html - merges/
針對不同平臺(tái)放置不同的hmtl/css/js文件,由hooks文件代替薪贫。 - 版本控制
推薦platforms/和plugins/文件夾不要納入版本控制中恍箭,config.xml和package.json中已經(jīng)做了保存,執(zhí)行cordova prepare后會(huì)自動(dòng)下載兩個(gè)文件夾下的內(nèi)容瞧省。
九:cordova命令行
https://cordova.apache.org/docs/en/latest/reference/cordova-cli/#cordova-platform-command
-
cordova prepare
復(fù)制根目錄下相關(guān)文件到平臺(tái)目錄下扯夭,為使用平臺(tái)sdk運(yùn)行項(xiàng)目做準(zhǔn)備 -
cordova compile
不使用prepare的編譯,建議使用cordova build -
cordova build
prepare和compile的合體 -
cordova run
運(yùn)行 -
cordova emulate
cordova run --emulator
的簡寫 cordova clean
-
cordova requirements
檢查針對某平臺(tái)運(yùn)行的環(huán)境是否已經(jīng)具備Requirements check results for ios: Apple macOS: installed darwin Xcode: installed [object Object] ios-deploy: installed [object Object] CocoaPods: installed [object Object]
-
cordova info
項(xiàng)目信息 -
cordova serve
將www/文件下的index.html文件運(yùn)行在本地臀突,默認(rèn)Port:8000
十:配置icon
<platform name="ios">
<!-- iOS 8.0+ -->
<!-- iPhone 6 Plus -->
<icon src="res/ios/icon-60@3x.png" width="180" height="180" />
<!-- iOS 7.0+ -->
<!-- iPhone / iPod Touch -->
<icon src="res/ios/icon-60.png" width="60" height="60" />
<icon src="res/ios/icon-60@2x.png" width="120" height="120" />
<!-- iPad -->
<icon src="res/ios/icon-76.png" width="76" height="76" />
<icon src="res/ios/icon-76@2x.png" width="152" height="152" />
<!-- Spotlight Icon -->
<icon src="res/ios/icon-40.png" width="40" height="40" />
<icon src="res/ios/icon-40@2x.png" width="80" height="80" />
<!-- iOS 6.1 -->
<!-- iPhone / iPod Touch -->
<icon src="res/ios/icon.png" width="57" height="57" />
<icon src="res/ios/icon@2x.png" width="114" height="114" />
<!-- iPad -->
<icon src="res/ios/icon-72.png" width="72" height="72" />
<icon src="res/ios/icon-72@2x.png" width="144" height="144" />
<!-- iPad Pro -->
<icon src="res/ios/icon-167.png" width="167" height="167" />
<!-- iPhone Spotlight and Settings Icon -->
<icon src="res/ios/icon-small.png" width="29" height="29" />
<icon src="res/ios/icon-small@2x.png" width="58" height="58" />
<!-- iPad Spotlight and Settings Icon -->
<icon src="res/ios/icon-50.png" width="50" height="50" />
<icon src="res/ios/icon-50@2x.png" width="100" height="100" />
<!-- iPad Pro -->
<icon src="res/ios/icon-83.5@2x.png" width="167" height="167" />
</platform>