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.优势 |
1. 基于angularjs,同时兼容iso和android(虽然还不太完善)。 |
2. 创业团队资源不足情况下,ionic很有优势。 |
3. 适合没太多互动性的app,开发效率比较高。 |
4.可实现在线更新, 允许加载动态加载web js。 |
b.劣势 |
1. android, list界面上下滑动会lag |
2. ios下,当键盘弹出时,你可以选择整个页面scroll,也可以选择不scroll,但是这两种情况都有问题,scroll体验很糟,不scroll在某些情况下键盘弹出,但是input看不到。。。。。(后来发现有keyboard-attach) |
3. 应用内的文字不能复制出去,看了论坛里面一些帖子,似乎只能修改ionic官方js代码 |
4. ios header部分在进入时会莫名跳跃闪烁,似乎和处理statusbar的占位有关系,后用变通方式修复了一部分,没完全修复 |
5. 下拉反弹有问题,可能和我们的代码结构有关 |
6. 缓存机制有问题,从list进入detail,list自动销毁,再返回list,从头看起,也就是不知道你上次看到哪儿了,有变通解决方案,花了巨多精力来修复这个问题。此外,切换tab后,同样数据不保留,干嘛一定要destroy啊,留个缓存多好...... |
7. 比较依赖一些现成的cordova plugin,如果没有plugin那很多功能的代价就高了,甚至无法实现 |
8. 界面间的跳转动画很难自定义 |
9. 在有底部tab的情况下,list进入detail,想隐藏底部tab并使其不占位置,得单独做些处理,如果不熟悉的话,需要花一些时间 |