Android 什么可以';你不能使用HTML5/Javascript移动应用程序,而可以使用本机移动应用程序吗?

Android 什么可以';你不能使用HTML5/Javascript移动应用程序,而可以使用本机移动应用程序吗?,android,ios,html,mobile,native,Android,Ios,Html,Mobile,Native,我刚刚开始研究创建移动应用程序,据我所知,使用HTML5/Javascript的一大优势是,您可以编写一个既能与Android一起工作又能与iOS一起工作的应用程序 我还读到,其中一个缺点是,有些事情你不能用HTML5/Javascript来做,而你可以用原生移动应用来做 我上面说的对吗?如果我决定走HTML5/Javascript路线,我将不能做什么?iOS的一些事情: 背景音频/声音效果 通讯录 利用CoreGraphics和OpenGL进行高级绘图 摄像机接入 加速计 有限的日历访问 这

我刚刚开始研究创建移动应用程序,据我所知,使用HTML5/Javascript的一大优势是,您可以编写一个既能与Android一起工作又能与iOS一起工作的应用程序

我还读到,其中一个缺点是,有些事情你不能用HTML5/Javascript来做,而你可以用原生移动应用来做

我上面说的对吗?如果我决定走HTML5/Javascript路线,我将不能做什么?

iOS的一些事情:

  • 背景音频/声音效果
  • 通讯录
  • 利用CoreGraphics和OpenGL进行高级绘图
  • 摄像机接入
  • 加速计
  • 有限的日历访问

    • 这完全取决于你要做什么。如果你的应用程序需要GPS、加速度计或是图形密集型应用程序,那么本机应用程序是唯一的选择

      否则,出于几个原因,我会为你的应用程序选择类似的东西。首先,如果你发布了一个HTML5应用程序的更新,你不需要强迫所有人下载,它会自动更新。另外,正如您所提到的,您只需要为所有移动平台编写一个应用程序,这就扩展了潜在的用户群。最后,我认为手机上的互联网正变得足够快,能够很好地支持互联网应用程序,这只会在未来几天有所改善


      基本上,这完全取决于应用程序的特定需求。就我个人而言,只要有可能,我都会选择HTML5,因为它为你提供了平台移动性。

      如果你使用钛,理论上不会太多

      无限扩展性 Tianium的插件体系结构允许您使用Objective-C或Java编写模块以 使用自定义本机功能扩展您的移动应用程序,然后调用这些功能 在Tianium中使用Javascript的模块。
      虽然我从未使用过钛,也不知道它的效果如何。无论如何,我会坚持本土发展。。。现在

      虽然本机应用程序和web应用程序各有利弊,但与web应用程序相比,本机应用程序的一个主要优势是“离线访问”
      然而,随着HTML5支持离线Web应用程序,这种情况正在发生变化。

      我认为我们可以将其分为两个列表

      移动设备上可以做什么在HTML5中不可能做到的事情:

      • 推送通知
      • 高级图形(3d、OpenGL)
      • 文件上传(可能在Android上,但不在iOS上)
      • 连接到通讯簿
      • 连接到日历
      在HTML5中可以做什么,但在移动设备上更容易或实现得更好:

      • UI的速度/流畅性(难以量化,但应用程序在原生时通常仍感觉更好)

      (请注意答复日期,6-12个月或更长时间内,情况可能会大不相同。)

      访问硬件-GPS、加速度计、摄像头。我的建议是:坚持使用本地应用程序。我一直在走HTML5之路——这很痛苦。作为一个社区维基可能更好?我赞同这个建议,@Eamorr。浏览器还没有准备好。无论如何,它们很可能成为本机代码的宿主。本地人不会很快离开。使用HTML5也是非常危险的,因为如果你做尖端的东西,你会依赖一个糟糕的标准。我已经尝试过了,但我的经验不是很好,我甚至无法让应用程序在模拟器上运行。我有同事使用钛来构建一些没有问题的应用程序。我知道自2011年以来,HTML5已经有了很大的改进。我想补充一点,依赖于HTML5功能的实现,充其量是有风险的。你可能会陷入严重的麻烦。还记得WebSockets吗?嗯……在进行任何此类实现之前,可以清楚地查看浏览器支持表。Moble safari 3.0支持的WebSockets。Mobile safari 3.1没有。嗯,可能会有一些例外,可能是因为WebSocket等一些功能可能还不成熟……但如果你检查浏览器支持,基本上是安全的。。 Unlimited Extensibility Titanium’s plug-in architecture allows you code modules in Objective-C or Java to extend your mobile app with custom native functionality and then call those modules using Javascript in Titanium.