最近公司在使用ionic做混合APP,虽然是最后端,但是也查一下东西,介绍一下吧
这是菜鸟教程的
Ionic
一.介绍
ionic是一种老式的使用H5开发iOS和Android应用的方式,也可以使用新的语言React Native开发,当然对于H5实现复杂的或者交互性没有那么好的,就可以使用iOS和Android的插件实现;
二.Ionic特点
a.开发方面:
1.ionic 基于Angular语法,简单易学.
2.ionic 是一个轻量级框架.
3.ionic 完美的融合下一代移动框架,支持 Angularjs 的特性, MVC ,代码易维护.
4.ionic 提供了漂亮的设计,通过SASS构建应用程序,它提供了很多UI组件来帮助开发者开发强大的应用.
5.ionic 专注原生,让你看不出混合应用和原生的区别.
6.ionic 提供了强大的命令行工具.
7.ionic 性能优越,运行速度快.
b.对开发的描述:
1.混合型APP的优势是:提高开发效率和迭代速度、降低开发成本;
2.劣势是:较差的用户体验和限制一定的本地资源和能力。
三.使用
a.安装环境
1.安装node.js
2.安装cordova (命令行: sudo npm insall –g cordova)
3.安装ionic(命令行: sudo npm insall –g ionic)
b.创建应用
1.Desktop 创建文件夹 例如appIonicTest
2.cd 到 appIonicTest 文件夹
3.ionic start myApp
c.创建平台应用(iOS . Android)
1.cd myApp
2.ionic cordova platform add ios
3.ionic build ios (打开iOS 项目)
4.ionic emulate iOS (模拟器运行)
d.开发
1.src 主要开发区域 ,开发完成后 同步到手机端
2.ionic cordova build ios
3.ionic platform add iOS
四.Ionic分析
a.优势
- 基于angularjs,同时兼容iso和android(虽然还不太完善)。
- 创业团队资源不足情况下,ionic很有优势。
- 适合没太多互动性的app,开发效率比较高。
4.可实现在线更新, 允许加载动态加载web js。
b.劣势 - android, list界面上下滑动会lag
- ios下,当键盘弹出时,你可以选择整个页面scroll,也可以选择不scroll,但是这两种情况都有问题,scroll体验很糟,不scroll在某些情况下键盘弹出,但是input看不到。。。。。(后来发现有keyboard-attach)
- 应用内的文字不能复制出去,看了论坛里面一些帖子,似乎只能修改ionic官方js代码
- ios header部分在进入时会莫名跳跃闪烁,似乎和处理statusbar的占位有关系,后用变通方式修复了一部分,没完全修复
- 下拉反弹有问题,可能和我们的代码结构有关
- 缓存机制有问题,从list进入detail,list自动销毁,再返回list,从头看起,也就是不知道你上次看到哪儿了,有变通解决方案,花了巨多精力来修复这个问题。此外,切换tab后,同样数据不保留,干嘛一定要destroy啊,留个缓存多好…
- 比较依赖一些现成的cordova plugin,如果没有plugin那很多功能的代价就高了,甚至无法实现
- 界面间的跳转动画很难自定义
- 在有底部tab的情况下,list进入detail,想隐藏底部tab并使其不占位置,得单独做些处理,如果不熟悉的话,需要花一些时间
ionic是一个强大的混合式/hybridHTML5移动开发框架,特点是使用标准的HTML、 CSS和JavaScript,开发跨平台(目前支持:Android、iOS,计划支持:Windows Phone、Firefox OS) 的原生App应用:
ionic主要包括三个部分:
CSS框架 - 提供原生App质感的CSS样式模拟。ionic这部分的实现使用了ionicons图标样式库。
JavaScript框架 - ionic基于AngularJS基础框架开发,遵循AngularJS的框架约束;主要提供了适应移动端UI的 AngularJS的扩展,主要包括指令和服务。此外,ionic使用AngularUI Router来实现前端路由。
命令行/CLI - 命令行工具集用来简化应用的开发、构造和仿真运行。ionic命令行工具使用了 Cordova,依赖于平台SDK(Android & iOS)实现将移动web项目打包成原生app。
由于ionic使用了HTML5和CSS3的一些新规范,所以要求 iOS7+/ Android4.1+。 在低于这些版本的手机上使用ionic开发的应用,有时会发生莫名其妙的问题。