IONIC功能全演示

IONIC功能全演示=== -使用Ionic提供的UI组件。Ionic本身是致力于建立统一的移动混合app构建平台,核心基础是Angular+Cordova。 -通过Angular指令封装,以及预定义的CSS,提供了开箱即用的HTML5 Mobile组件。 -构建与开发支持,能够直接运行www目录下的index.html进行开发调试。同时也支持发布人员利用gulp构建输出到dist目录-利用gulp,同样演示了单元测试以及场景测试。 - [在线演示,内有地址二维码,可手机浏览](http://1.thm1118.sinaapp.com/static/ionic/www/index.html) ##预览![信息卡片](screenshot/card.png) ![下拉刷新](screenshot/pullrefress.png) ![表单元素](screenshot/form.png) ![菜单](screenshot/menu.png) ![列表左滑按钮](screenshot/option.png) ![弹出层](screenshot/pop.png) ![tab](screenshot/tab.png) ![幻灯](screenshot/slide.png) ![图片水平滚动](screenshot/hscroll.png) ![毛玻璃效果](screenshot/blure.png) ![2000条数据搜索](screenshot/search.png) ![输入自动完成](screenshot/autocomplete.png) ![列表自动分组](screenshot/autogroup.png) ![媒体相册](screenshot/galaxy.png) ![chartjs统计图](screenshot/chartjs.png) ![百度统计图](screenshot/echat.png) ![图片延时加载](screenshot/imageload.png) ##基础环境纯webapp运行或演示,只需要一个web server部署即可。 ##目录结构说明- www目录:源码目录- dist目录:构建输出目录##利于开发,测试和打包部署的nodejs环境简单开发可以不依赖nodejs环境。但是有了基于nodejs的javascript完整开发周期环境,会极大提升开发效率,保障质量。 - nodejs最新版。 -有些node包的安装需要C++编译,x86版本只需要x86的C++编译器,windows上的x64 C++编译器需要特别设置。 - npm会很慢,要么使用代理,要么使用国内镜像,比如[淘宝镜像](http://npm.taobao.org/) ,使用淘宝镜像后,npm命令需要替换成cnpm命令。 - `npm install -g gulp` - `npm install -g ionic` -如需编译sass的话,安装[ruby](https://www.ruby-lang.org/zh_cn/),再执行`gem install sass`(如遇到ssl错误,修改为http源:gem source -a http://rubygems.org/) - `npm install -g node-gyp` -有的node包依赖python编译,安装[python2.7](https://www.python.org/) - C++编译环境[MSVStudio免费版](https://www.visualstudio.com/downloads/download-visual-studio-vs#d-express-windows-desktop).。注意根据studio不同版本指定--msvs_version=2013选项-安装项目开发依赖包,在项目根目录下运行`npm install` ### “所见即所得”式开发-在项目根目录下运行`ionic serve`,即可在www目录下开展“所见即所得”的方式开发-另外一种方式,在webstorm里对index.html按debug运行,同样是“所见即所得”的方式开发### CROS支持-生产环境的CROS支持要么使用jsonp技术,要么在服务端设置代理。 -而开发环境下要么基于不安全做法,服务端api设置头`Access-Control-Allow-Origin:*" `,要么按如下便捷设置:基于`ionic serve`,可以在开发时使用本地代理。ionic.project内设置: `{ "name": "app", "app_id": "", "proxies": [{ "path": "/api/forecast", "proxyUrl": "https://api.forecast.io/forecast/APIKEY/" }] }`注意proxies意味着可以设置多个代理。path是需要代理的url,proxyUrl是实际指向的url ### Sass支持-默认情况是使用预先编译好的css文件,在www/lib/ionic/css目录下。 -可以开启[Sass](http://sass-lang.com/)开发样式:`ionic setup sass` - sass代码写在./scss/ionic.app.scss内-移除index.html内的` ,`,增加`` -注意所有的css引用都必须放在``内-在ionic.project内增加"gulpStartupTasks": ["sass", "watch"] -开启Sass开发模式后,可以通过运行`ionic serve`开所见即所得的方式看到sass代码变化带来的结果.或者手工运行gulp任务- [Sass自定义ionic主题指南](http://learn.ionicframework.com/formulas/working-with-sass/) ## Ionic相关开发必看- [Ionic地址](http://ionicframework.com/) - [入门](http://ionicframework.com/getting-started) - Ionci工具[Ionic CLI](https://github.com/driftyco/ionic-cli) ## gulp构建流程-如果是简单开发,不需要构建。可以通过webstorm,运行index.html即能使用。 -如果需要产品发布,则需要按照上文要求,准备好node开发环境,然后在根目录成功执行`npm install`后,可以执行预定义的构建任务。 -预定义构建任务主要分为三个:1、日常sass编译;2、开发构建; 3、发布构建; - 1、日常sass编译:当前目录执行`gulp`即可,将自动编译scss目录下的ionic.app.scss文件,并持续监测该文件是否改动,如发生改动,则重新编译输出。详见上文。 - 2、开发构建:`gulp dev:pipeline`对www目录进行构建,输出到dist目录。构建内容主要是拷贝js,css,图片,字体等文件,并在index.html中自动替换新引用。并自动执行单元测试。开发构建的目的主要是为产品构建做准备。 - 3、发布构建:`gulp prod:pipeline`对www目录构建,输出到dist目录,除了开发构建内容外,还对图片,js,css等进行压缩合并,并把模板文件编译成js。对目标js执行单元测试。同时对js,css的引用增加时间戳,解决更新后客户端缓存刷新。 -注意1:www目录下的assets.json文件里,按顺序列出了需要构建的css,js文件。上述两种构建都只读取该文件内的文件列表进行构建,不在该文件内的js或css文件会被忽略。 -注意2:在www目录下的index.html中,有如下注释标记,构建时用来插入、全部替换其中的内容,删除该标记将导致无法引用构建后的js或css文件。 为了在开发时,同时也支持直接基于www目录开发和运行,可以在该标注内引用相关js和css,但是如上文描述,实际构建插入的js和css来自assets.json文件内的引用描述-注意3:app.js内定义了主模块名:starter (`angular.module('starter'`),构建时编译templates目录下的模板文件时,硬编码使用starter模块名,如果需要更改app.js内的主模块名,则需要对应到构建描述文件gulp.js内更改模板编译的对应模块名(mainModuleName),否则将导致模板文件无法加载的错误. -与`ionic serve`命令整合的自动构建,该命令默认是监测www目录,并在www目录上创建一个web服务:在ionic.project文件内添加或编辑下面内容: "documentRoot": "www", "createDocumentRoot": true, "watchPatterns": ["dist/**/*"], "gulpStartupTasks": ["dev:pipeline" ]这样在执行`ionic serve`命令时,先执行gulp开发构建,输出到dist目录,ionic监测dist目录,并在dist目录上创建web服务。 -构建的版本设定:根目录下config文件夹内分别有开发构建和发布构建两个json文件,修改里面对应值,构建时会自动更新constant.js内的对应键值。 ##添加或移除js -添加第三方js:`bower install XXXX --save`,会自动安装新的js库到www目录中的lib目录下。注意需要在assets.json内为构建配置包括该js, -添加自己开发的js,放在www目录中的js目录下,同样需要在assets.json内配置。 -在www内的index.html内引用新js时,注意放在``内##单元测试和场景测试-参照test目录编写##远程调试-微信的android版本的内置浏览器是腾讯x5,大致相当于webkit40,具体版本号很神秘,渲染能力和性能有些问题,参考官方说明[Inspector调试WebView](http://x5.tencent.com/guide?id=2001) ##其他注意事项: -出于功能演示目的,引入了一些第三方库,以及各种图片,实际不需要时应该移除,否则导致带宽浪费,加载时间长-出于演示登录的权限控制,在app.js内使用了通常用于单元测试的$httpBackend,会拦截所有http请求,开发时需要移除.
zip 文件大小:58.99MB