我们计划使用 AngularJS 创建一个托管 Web 应用程序。作为 UI 框架,我们发现 Ionic 和 Onsen 可以很好地与 AngularJS 配合使用。这两个框架都宣传它们是专门为混合应用程序设计的。但我们我理解正确,这两个框架都是基于网络技术的。那么在为非混合应用程序使用建议的 UI 框架时有什么缺点呢?主要是浏览器支持吗?
谢谢
我们计划使用 AngularJS 创建一个托管 Web 应用程序。作为 UI 框架,我们发现 Ionic 和 Onsen 可以很好地与 AngularJS 配合使用。这两个框架都宣传它们是专门为混合应用程序设计的。但我们我理解正确,这两个框架都是基于网络技术的。那么在为非混合应用程序使用建议的 UI 框架时有什么缺点呢?主要是浏览器支持吗?
谢谢
好吧,Ionic和Onsen都是专门为混合移动应用程序制作的。即使是没有自定义的平板电脑应用程序,您也无法使用它(如果我错了,请纠正我),因为它们针对有限的视口并结合了手机 UX 模式。
此外,它们在设计时考虑了PhoneGap(应用程序将托管在 WebView 组件中),并解决了一些常见的 WebView 问题,例如 GPU 加速以获得更好的性能。
如果您只需要一些用于简单 Web 应用程序的 UI 框架,您最好看看Twitter Boostrap或Zurb Foundation。对于复杂的情况,您甚至可以考虑Sencha而不是 Angular。
Ionic 的一部分需要安装 Cordova/PhoneGap 设备插件。它有助于在 Android 和 iOS 上适当地显示,以及增加 iOS 7 标题栏的大小。不过,这对 web 来说不是问题,因为您将让浏览器的“chrome”占据该空间。
由于模板文件需要通过(通常是蜂窝)连接到 Internet,因此您可能会在页面转换之类的事情上失去一些黄油般的平滑度,但如果在网络上使用 Ionic 或 Onses 构建,您的应用程序肯定会工作。
在过去的几个月里,情况发生了很大变化。
这两个框架现在都支持拆分视图,因此它们可以用于平板设备。主观上 Onsen UI 有更好的支持(它更可配置),但 Ionic 也不错。这可以转化为更小的桌面浏览器屏幕。
您还应该考虑 Onsen UI 具有专用的桌面浏览器支持(所有 web-kit 浏览器)。Ionic 框架也可以在桌面浏览器上工作,但它没有针对这种环境进行全面测试或优化。
这里最大的问题是这两个框架从来都不是打算在更大的屏幕上使用的。它们看起来又大又臃肿。如果您曾经使用过 jQuery Mobile(在桌面浏览器上),您就会理解这个问题。
没有什么能阻止你这样做——它甚至可能是移动优先设计方法的一种聪明方法。优点是您可以快速迭代一个想法,然后根据用户反馈/指标投资于原生或平台特定的应用程序。
主要缺点是用户对您的 UI 和应用程序逻辑的期望对于网页和本机应用程序是不同的。例如,后退按钮将在浏览器和标题中重复。您可以使用一些特定于平台的 CSS 或配置来隐藏它。然后是您的应用程序状态和用户数据——您会将其保存在本地存储、会话还是数据库中?这取决于您的应用和最佳判断。
有一些浏览器问题可能无法在 Ionic 和 Onsen 的核心中解决,因为它们不是针对 IE6/7 的(请参阅angular browser support),但是您可以通过分级浏览器支持来解决这些问题政策。