Android 你可以用你可以';与混合应用程序无关

Android 你可以用你可以';与混合应用程序无关,android,ios,angularjs,cordova,ionic-framework,Android,Ios,Angularjs,Cordova,Ionic Framework,随着混合应用领域过去几年的发展(比如和),我想知道:你能用原生应用做什么,而混合应用做不到 我知道有些本机功能是iOS等单一操作系统独有的 是否有人可以提供Android和iOS独有的功能列表,或者Android与iOS与Ionic的功能比较?Ionic基于使用WebView的Cordova/PhoneGap。我将尝试回答混合应用不能做的更一般的部分,或者更确切地说,使用网络视图似乎不可能做的事情的例子: 可以通过将DOM元素替换为本机元素,但它们不能附加到DOM,因此如果元素通过JavaSc

随着混合应用领域过去几年的发展(比如和),我想知道:你能用原生应用做什么,而混合应用做不到

我知道有些本机功能是iOS等单一操作系统独有的

是否有人可以提供Android和iOS独有的功能列表,或者Android与iOS与Ionic的功能比较?

Ionic基于使用WebView的Cordova/PhoneGap。我将尝试回答混合应用不能做的更一般的部分,或者更确切地说,使用网络视图似乎不可能做的事情的例子:

  • 可以通过将DOM元素替换为本机元素,但它们不能附加到DOM,因此如果元素通过JavaScript或CSS设置动画,它将落后(假设您手动通知覆盖层其预期的新位置);不过,滚动应该可以同步
  • 无法很好地自定义辅助功能
  • 无法自定义文本选择/长点击
  • 另一个好的(也是令人沮丧的)例子是,在iOS上,您无法移除键盘上的附件条。有一些插件可以为某些版本的iOS实现这一功能,但它非常脆弱,不能100%工作

如前所述,有许多东西是仅限iOS或仅限Android的,但这些东西几乎总是只因为没有人为其他平台制作插件。

构建本机应用程序意味着使用平台的本机语言、iOS上的Objective-C和安卓上的Java。本机应用程序的主要优势在于其性能。本机应用程序被编译成机器代码(Android下的Dalvik字节码),这可以让你从手机上获得最佳性能

最佳性能包括快速流畅的动画以及对手机硬件的完全访问、多点触控支持和最新API。


我不认为你可以指定一个清单。Cordova插件每天都在开发。本机功能也是如此。你应该做的(如果你想开发一个应用程序),就是看看你能用cordova(或其他FW)做些什么,看看它是否足够。是否有一些在本机应用程序中经常使用的功能你不能在混合应用程序中使用?嗯,我不这么认为。他们只是用不同的方式来做而已。(至少在我的经验中)也许是坚持。。。我不是混合应用程序领域的专家,但我猜他们可能很难在应用程序中包含数据库?!在我看来,在hybrid中一切都是可行的,因为所有cordova插件实际上都是本地脚本。混合应用程序的功能没有限制,使用WebView可以实现类似应用程序的性能。特别是考虑到最近的硬件加速改进(例如,如果您使用CSS而不是jQuery来制作动画)。