(一) 搭建开发环境,并创建工程
- ANDROID_HOME D:\Program Files\adt\sdk (对应sdk路径)
- path %ANDROID_HOME%\platform-tools;
- path %ANDROID_HOME%\tools;
3.安装ionic等,运行命令提示符(管理员) 输入
a. 将cordova和ionic包安装到全局环境中(可供命令行使用):
- npm install -g cordova ionic
注:由于GFW,很多插件下载不下来,我们可以使用淘宝镜像来解决这个问题:
- npm install -g cnpm --registry=https://registry.npm.taobao.org
- cnpm install -g ionic cordova
b. 进入你要创建项目的路径:
- cd E:\Study\Android\ionic\Project
- e:
- ionic start myApp tabs
- cd myApp
- ionic platform add android
- ionic build android
- ionic emulate android
其中f和g可以合并为:
- ionic run android
即生成apk,并在模拟器或真机中模拟。
4.更新ionic等
a.更新cordova及ionic包
- npm update -g cordova ionic
- ionic lib update
5.展现ionic项目结果(显示在ios和android上的样式)
- ionic serve --lab
6.查看ionic版本(当前最新版本为1.2.13)
- ionic -v
(二) 为Android项目集成Crosswalk(更新官方命令行工具)
- ionic browser add crosswalk
- ionic browser revert android
- ionic browser remove crosswalk
- ionic start IonicProject blank
- cd IonicProject
- cordova platform add android@3.5
- rm -rf platforms/android/CordovaLib/*
- cp -a E:\Study\CrossPlatform\Crosswalk\crosswalk-cordova-9.38.208.10-x86/framework/* platforms/android/CordovaLib/
- cp -a E:\Study\CrossPlatform\Crosswalk\crosswalk-cordova-9.38.208.10-arm/framework/xwalk_core_library/libs/armeabi-v7a platforms/android/CordovaLib/xwalk_core_library/libs/
- cp -a E:\Study\CrossPlatform\Crosswalk\crosswalk-cordova-9.38.208.10-x86/VERSION platforms/android/
- cd platforms\android\CordovaLib
- android update project --subprojects --path . --target "android-19"
- ant debug
- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
(三) 安装sass并在webstorm中为scss添加watcher
1. 安装Ruby 最新为 2.1.5版本,不放心的话安装 Ruby 1.9.3-p551
- gem sources --remove https://rubygems.org/
- gem source -a http://ruby.taobao.org
- gem install sass
- $positive: #00FF00;
- @import "../lib/ionic/scss/ionic";
(四) 修改应用图标及添加启动画面(更新官方命令行工具自动生成)
1.在整个项目所在文件夹下创建res文件夹,里边再分别创建两个文件夹android和ios。
<platform name="android">
<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" />
</platform>
其中src中的图片路径就为整个项目的相对路径。
我这里偷了个懒,只搞了一个最高像素密度的应用图标(192px*192px)进去,安卓会自动进行压缩。
这里顺便说一下如果要修改应用的名称,只要修改name标签里的内容即可。
这样在命令行中重新运行ionic run android,就能看到应用图标和名字已经被替换了。
启动画面:
将启动画面的图片拷贝到之前的android文件夹下,splash-land-hdpi.png(640*480)splash-land-ldpi.png(426 × 320)splash-land-mdpi.png(470 × 320)splash-land-xhdpi.png(960 × 720)splash-port-hdpi.png(480*640)splash-port-ldpi.png(320*426)splash-port-mdpi.png(320*470)splash-port-xhdpi.png(720*960)
(名称可随意,只要和config.xml对应上即可)。
在config.xml中添加
<splash src="res/screen/android/splash-land-hdpi.png" density="land-hdpi"/>
<splash src="res/screen/android/splash-land-ldpi.png" density="land-ldpi"/>
<splash src="res/screen/android/splash-land-mdpi.png" density="land-mdpi"/>
<splash src="res/screen/android/splash-land-xhdpi.png" density="land-xhdpi"/>
<splash src="res/screen/android/splash-port-hdpi.png" density="port-hdpi"/>
<splash src="res/screen/android/splash-port-ldpi.png" density="port-ldpi"/>
<splash src="res/screen/android/splash-port-mdpi.png" density="port-mdpi"/>
<splash src="res/screen/android/splash-port-xhdpi.png" density="port-xhdpi"/>
<preference name="SplashScreen" value="screen"/>
<preference name="SplashScreenDelay" value="10000" />
其中10000单位为毫秒,即10秒后隐藏启动画面。如果不写第三句,默认3秒隐藏。
如下图所示:
我这里没有那么多分辨率下的图片,就随便找了一个稍大分辨率的,density也没写。它会自动将该图片拷贝到drawable文件夹。
这时候再重新运行程序,即可看到启动画面。
用以上的方法,启动画面的显示时长是固定的,很明显不太友好。
未完持续...
以上方法已经可以使用Ionic命令行工具来自动生成了,步骤如下:1.在项目的根目录下创建resources文件夹。2.在文件夹中都放入icon.png(应用图标,最小192x192px,不带圆角),splash.png(启动屏幕,最小2208x2208px,中间区域1200x1200px)(可以是png、psd、ai)3.在cmd中进入项目所在文件夹执行:
- ionic resources
执行该命令后,会自动在resources文件夹下创建已添加的平台名称的文件夹,如:android,其中会自动将图片进行缩放、裁剪,生成不同分辨率的图片,并在config.xml中添加相应内容。也可分开执行:注意:执行以上命令时需在线!
- ionic resources --icon
- ionic resources --splash
(五) ionic常见问题解决
以下为在使用ionic开发过程中遇到的各种常见问题,不断更新。 目前的开发环境如下图:
1.在xcode7.1中调试没有任何问题,但是打包过程中提示:‘Cordova/CDVViewController.h’ file not found。
在 Build Settings -> Header Search Paths 中添加:
"$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include"
之前已有项不要动。
在地图所在div中添加指令:
data-tap-disabled="true" ,例:
- <ion-content>...
- <div id="map" data-tap-disabled="true">...</div>
- <ion-list>...</ion-list>
- </ion-content>