- 全局安装cordova
- 创建你的app
cordova create hello com.example.hello HelloWorld
hello 是app名 com.example.hello 是bundle id
3. 添加平台
cd hello
cordova platform add ios --save
cordova platform add android --save
每次更改文件的时候重新构建app的时候不生效,可以删除platform对应平台再重新添加。
4. 测试app
cordova emulate android
cordova emulate ios
ios 可以利用xcode进行调试。Android可以用Android studio
5. 热更新
cordova plungin add cordova-hot-code-push-plugin
- 进入你的项目初始化cordova-hcp.json文件。
cd hello
cordova-hcp init
{
// 自动在native(iOS/Android)下生成文件链接标签
"autogenerated": true,
// 项目名称(自行替换)
"name": "com.example.hello",
// 更新的方式,有三个选项:start(app启动时安装更新,默认值)、now(app从后台切换过来的时候安装更新)、resume(web内容下载完毕即安装更新)
"update": "now",
// 项目在服务器上面的地址(这里使用了笔者本地的服务器地址,自行替换)
"content_url": "http://localhost/cordova/www"
}
然后在根目录的config.xml文件中加入以下这段
<chcp>
<config-file url="http://localhost/cordova/www/chcp.json"/>
</chcp>
- 替换icon和启动图。
cordova plugin add cordova-plugin-splashscreen
<platform name="android">
<icon density="ldpi" src="res/icon/android/icon-36-ldpi.png" />
<icon density="mdpi" src="res/icon/android/icon-48-mdpi.png" />
<icon density="hdpi" src="res/icon/android/icon-72-hdpi.png" />
<icon density="xhdpi" src="res/icon/android/icon-96-xhdpi.png" />
<icon density="xxhdpi" src="res/icon/android/icon-144-xxhdpi.png" />
<icon density="xxxhdpi" src="res/icon/android/icon-192-xxxhdpi.png" />
<splash density="land-hdpi" src="res/screen/android/splash-land-hdpi.png" />
<splash density="land-ldpi" src="res/screen/android/splash-land-ldpi.png" />
<splash density="land-mdpi" src="res/screen/android/splash-land-mdpi.png" />
<splash density="land-xhdpi" src="res/screen/android/splash-land-xhdpi.png" />
<splash density="port-hdpi" src="res/screen/android/splash-port-hdpi.png" />
<splash density="port-ldpi" src="res/screen/android/splash-port-ldpi.png" />
<splash density="port-mdpi" src="res/screen/android/splash-port-mdpi.png" />
<splash density="port-xhdpi" src="res/screen/android/splash-port-xhdpi.png" />
</platform>
<platform name="ios">
<!-- iOS 8.0+ -->
<!-- iPhone 6 Plus -->
<icon src="res/icon/ios/icon-60@3x.png" width="180" height="180" />
<!-- iOS 7.0+ -->
<!-- iPhone / iPod Touch -->
<icon src="res/icon/ios/icon-60.png" width="60" height="60" />
<icon src="res/icon/ios/icon-60@2x.png" width="120" height="120" />
<!-- iPad -->
<icon src="res/icon/ios/icon-76.png" width="76" height="76" />
<icon src="res/icon/ios/icon-76@2x.png" width="152" height="152" />
<!-- iOS 6.1 -->
<!-- Spotlight Icon -->
<icon src="res/icon/ios/icon-40.png" width="40" height="40" />
<icon src="res/icon/ios/icon-40@2x.png" width="80" height="80" />
<!-- iPhone / iPod Touch -->
<icon src="res/icon/ios/icon.png" width="57" height="57" />
<icon src="res/icon/ios/icon@2x.png" width="114" height="114" />
<!-- iPad -->
<icon src="res/icon/ios/icon-72.png" width="72" height="72" />
<icon src="res/icon/ios/icon-72@2x.png" width="144" height="144" />
<!-- iPhone Spotlight and Settings Icon -->
<icon src="res/icon/ios/icon-small.png" width="29" height="29" />
<icon src="res/icon/ios/icon-small@2x.png" width="58" height="58" />
<icon src="res/icon/ios/icon-small@3x.png" width="87" height="87" />
<!-- iPad Spotlight and Settings Icon -->
<icon src="res/icon/ios/icon-50.png" width="50" height="50" />
<icon src="res/icon/ios/icon-50@2x.png" width="100" height="100" />
<splash src="res/screen/ios/Default~iphone.png" width="320" height="480"/>
<splash src="res/screen/ios/Default@2x~iphone.png" width="640" height="960"/>
<splash src="res/screen/ios/Default-Portrait~ipad.png" width="768" height="1024"/>
<splash src="res/screen/ios/Default-Portrait@2x~ipad.png" width="1536" height="2048"/>
<splash src="res/screen/ios/Default-Landscape~ipad.png" width="1024" height="768"/>
<splash src="res/screen/ios/Default-Landscape@2x~ipad.png" width="2048" height="1536"/>
<splash src="res/screen/ios/Default-568h@2x~iphone.png" width="640" height="1136"/>
<splash src="res/screen/ios/Default-667h.png" width="750" height="1334"/>
<splash src="res/screen/ios/Default-736h.png" width="1242" height="2208"/>
<splash src="res/screen/ios/Default-Landscape-736h.png" width="2208" height="1242"/>
</platform>
- 其他配置
- 自动影藏启动页面
AutoHideSplashScreen (默认为true)
<preference name="AutoHideSplashScreen" value="true" />
- 显示启动页面的时间长度SplashScreenDelay(默认为:3000)
<preference name="SplashScreenDelay" value="3000" />
- 若想禁用启动页面,可设置为:
<preference name="SplashScreenDelay" value="0"/>
如果是iOS平台上想禁止启动页面,还需要添加<preference name="FadeSplashScreenDuration" value="0"/>
- 启动页面淡入淡出的效果
是否显示淡入淡出效果FadeSplashScreen(默认为:true)
<preference name="FadeSplashScreen" value="false"/>
淡入淡出效果的执行时间长度FadeSplashScreenDuration(默认为:500)
<preference name="FadeSplashScreenDuration" value="750"/>
注意:FadeSplashScreenDuration时间是包含在SplashScreenDelay的时间里的。
<preference name="ShowSplashScreenSpinner" value="false"/>
navigator.splashscreen.hide();//隐藏启动页面
navigator.splashscreen.show();//显示启动页面
<preference name="SplashMaintainAspectRatio" value="true|false" />
<preference name="SplashShowOnlyFirstTime" value="true|false" />
SplashMaintainAspectRatio:选填项,默认为false。当设置为true时,则不会拉伸图片来填充屏幕,会以图片原始比例显示图片。
SplashShowOnlyFirstTime:选填项,默认为true。当设置为false时,APP通过navigator.app.exitApp()代码退出app后,在下次打开APP时,还会显示启动页面。若为true时,就不会出现。
- 安卓图标规格(存放目录:res/icon/android/)
36*36 icon-36-ldpi.png
48*48 icon-48-ldpi.png
72*72 icon-72-ldpi.png
96*96 icon-96-ldpi.png
144*144 icon-144-ldpi.png
192*192 icon-192-ldpi.png
- ios图标规格(存放目录:res/icon/ios/)
29*29 icon-small.png
58*58 icon-small@2x.png
87*87 icon-small@3x.png
40*40 icon-40.png
80*80 icon-40@2x.png
50*50 icon-50.png
100*100 icon-50@2x.png
60*60 icon-60.png
120*120 icon-60@2x.png
180*180 icon-60@3x.png
72*72 icon-72.png
144*144 icon-72@2x.png
76*76 icon-76.png
152*152 icon-76@2x.png
- 安卓启动图规格(存放目录:res/screen/android/)
960*720 splash-land-xhdpi.png
640*480 splash-land-hdpi.png
470*320 splash-land-mdpi.png
426*320 splash-land-ldpi.png
720*960 splash-port-xhdpi.png
480*640 splash-port-hdpi.png
320*470 splash-port-mdpi.png
320*426 splash-port-ldpi.png
- ios启动图规格(存放目录:res/screen/ios/)
320*480 Default~iphone.png
640*960 Default@2x~iphone.png
768*1024 Default-Portrait~ipad.png
1536*2048 Default-Portrait@2x~ipad.png
1024*768 Default-Landscape~ipad.png
2048*1536 Default-Landscape@2x~ipad.png
640*1136 Default-568h@2x~iphone.png
750*1334 Default-667h.png
1242*2208 Default-736h.png
2208*1242 Default-Landscape-736h.png
- 设置状态栏。适配iphonex
- 安装cordova-plugin-statusbar插件
cordova plugin add cordova-plugin-statusbar
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
if (navigator.userAgent.match(/(iPhone)/)) {
if ((screen.availHeight == 647) && (screen.availWidth == 375) && (window.devicePixelRatio == 3)) {
StatusBar.overlaysWebView(true)
StatusBar.backgroundColorByHexString("#26a2ff")
}
}
}
- 每次打包完你的app文件,替换掉www下的文件。
- 然后执行
- 分别打包ios android 应用。
- ios通过xcode打包(具体详见ios打包)
- Android打包
hello 是app名 com.example.hello 是bundle id
3. 添加平台
cd hello cordova platform add ios --save cordova platform add android --save每次更改文件的时候重新构建app的时候不生效,可以删除platform对应平台再重新添加。
4. 测试app
ios 可以利用xcode进行调试。Android可以用Android studio
5. 热更新
cd hello cordova-hcp init{ // 自动在native(iOS/Android)下生成文件链接标签 "autogenerated": true, // 项目名称(自行替换) "name": "com.example.hello", // 更新的方式,有三个选项:start(app启动时安装更新,默认值)、now(app从后台切换过来的时候安装更新)、resume(web内容下载完毕即安装更新) "update": "now", // 项目在服务器上面的地址(这里使用了笔者本地的服务器地址,自行替换) "content_url": "http://localhost/cordova/www" }然后在根目录的config.xml文件中加入以下这段
AutoHideSplashScreen(默认为true)<preference name="SplashScreenDelay" value="0"/>如果是iOS平台上想禁止启动页面,还需要添加
<preference name="FadeSplashScreenDuration" value="0"/>是否显示淡入淡出效果FadeSplashScreen(默认为:true)
淡入淡出效果的执行时间长度FadeSplashScreenDuration(默认为:500)
注意:FadeSplashScreenDuration时间是包含在SplashScreenDelay的时间里的。
SplashMaintainAspectRatio:选填项,默认为false。当设置为true时,则不会拉伸图片来填充屏幕,会以图片原始比例显示图片。SplashShowOnlyFirstTime:选填项,默认为true。当设置为false时,APP通过navigator.app.exitApp()代码退出app后,在下次打开APP时,还会显示启动页面。若为true时,就不会出现。