一.前言
在iOS和android原生中,如果需要設(shè)置icons,app name等框咙,可以在各自的開發(fā)工具中設(shè)置即可嚷辅,但是在混合開發(fā)Cordova中簿姨,可以在config.xml
文件中設(shè)置。
詳細(xì)可以查看Cordova官網(wǎng)中config.xml介紹簸搞。
二.簡單介紹
下面是常見的設(shè)置整理:
1.修改app version
可以在config.xml
文件中修改扁位,在<widget>
標(biāo)簽中,例如加入version=“1.1.1”
趁俊,那么iOS
和android
的version
就為1.1.1域仇;
其中需要注意,如果需要修改versionCode
(即是build
):
對于iOS寺擂,可以在widget標(biāo)簽中加入ios-CFBundleVersion=“10101”
暇务,至于為什么是10101這個(gè)數(shù)字,是通過計(jì)算公式為:1*10000+1*100+1*1得出來的泼掠;。
對于android般卑,也是在widget標(biāo)簽中加入android-versionCode=“10101”
武鲁,但是進(jìn)行真機(jī)測試的時(shí)候,發(fā)現(xiàn)在android的機(jī)子上打印出來蝠检,不是10101這個(gè)數(shù)字沐鼠,在platform/android/AndroidManifest.xml
中可以看到build出來后的versionCode已經(jīng)變?yōu)?0101,但是打印出來卻是不正確的(可以通過Github上的app info插件來打印build)叹谁。
問題的原因:
通過查找路徑platform/android/build.gradle
會(huì)發(fā)現(xiàn)是cdvVersionCode
為空導(dǎo)致的饲梭,該文件中的代碼顯示,如果cdvVersionCode
為空焰檩,則會(huì)將version進(jìn)行加8或9(網(wǎng)上有人說是Cordova存在的一個(gè)bug憔涉,我用的Cordova版本是6.0.0,現(xiàn)在的版本已經(jīng)到了7.0.1)析苫。
解決方法:
所以此時(shí)就只能是通過重新設(shè)置cdvVersionCode
從而達(dá)到控制android的versionCode的目的兜叨,在Cordova官網(wǎng)有說明如何設(shè)置cdvVersionCode
It is possible to configure the Gradle build by setting the values of certain Gradle properties that Cordova exposes.
cdvVersionCode 設(shè)置:
cdvVersionCode: Overrides the versionCode set in AndroidManifest.xml
解決步驟:
在platform/android
路徑下,查找gradle.properties
文件衩侥,沒有該文件的話国旷,就自行在platform/android
路徑下創(chuàng)建這個(gè)文件,然后寫入cdvVersionCode=10101
,這樣android的versionCode就需要成功了茫死。
附上stack overflow上相關(guān)解決方案
2.修改app的bundle id
跪但,可以在<widget>
標(biāo)簽中修改,id=“com.xxx.xxx”
即可峦萎。
3.app 的啟動(dòng)頁面
默認(rèn)的是index.html
頁面屡久,此時(shí)可以通過下面的代碼改變啟動(dòng)頁面
<content src="init_page.html” />
4.修改app icons
需要區(qū)分iOS和android兩個(gè)平臺(tái)來進(jìn)行 ,app icons設(shè)置。
android平臺(tái):
<platform name="android">
<!--
ldpi : 36x36 px
mdpi : 48x48 px
hdpi : 72x72 px
xhdpi : 96x96 px
xxhdpi : 144x144 px
xxxhdpi : 192x192 px
-->
<icon src="res/android/ldpi.png" density="ldpi" />
<icon src="res/android/mdpi.png" density="mdpi" />
<icon src="res/android/hdpi.png" density="hdpi" />
<icon src="res/android/xhdpi.png" density=“xhdpi"/>
<icon src="res/android/xxhdpi.png" density="xxhdpi" />
<icon src="res/android/xxxhdpi.png" density="xxxhdpi" />
</platform>
iOS平臺(tái):
<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>
5.plugin
在Cordova的開發(fā)中免不了需要導(dǎo)入插件爱榔,如果需要提交插件到svn被环,可以這樣操作:cd進(jìn)入項(xiàng)目之后,導(dǎo)入插件详幽,執(zhí)行--save,此時(shí)插件就會(huì)同步到config.xml
筛欢,再提交這個(gè)confg.xml
到svn即可。另一個(gè)用戶妒潭,更新config.xml
文件悴能,執(zhí)行cordova prepare
,就可以將提交好的plugin加入到project中雳灾,可以正常使用plugin漠酿。
例如:
add cordova-plugin-camera with semver version ^2.0.0 and save it to config.xml:
cordova plugin add cordova-plugin-camera @^2.0.0 --save
其中的@后面是你要添加的plugin的版本號(hào),具體要哪一個(gè)版本號(hào)谎亩,你可以在Github上搜索該plugin炒嘲。
6.在android上無法請求接口宇姚,需要去到platform/android/AndroidManifest.xml
中查看permission
是否有添加。
<uses-permission android:name="android.permission.INTERNET” />
其中也有一些其它的權(quán)限夫凸,例如camera浑劳,contact等等。
7.name
指定app的名字
Specifies the app's formal name, as it appears on the device's home screen and within app-store interfaces.
在<widget>
中寫入
<name>HelloCordova</name>
三.總結(jié)
在Cordova開發(fā)中夭拌,會(huì)遇到一些基本的設(shè)置魔熏,都可以在config.xml文件中進(jìn)行設(shè)置,也許會(huì)遇到一些棘手的問題鸽扁,例如android的versionCode蒜绽,在終端build出來后,查看AndroidManifest.xml文件也是你設(shè)置的number桶现,但是在相關(guān)js文件中,打印出來的number卻不一致躲雅。所以,這種情況可以上stack overflow上查找原因骡和,一般都是可以解決的相赁。