使用 UIWebView 构建 HTML5 iOS 应用

Posted

技术标签:

【中文标题】使用 UIWebView 构建 HTML5 iOS 应用【英文标题】:Building an HTML5 iOS app with UIWebView 【发布时间】:2010-11-22 20:16:20 【问题描述】:

我有一个客户建议我们通过创建 UIWebView 并将所有应用程序逻辑卸载到 html5 应用程序来简单地将 HTML5 应用程序包装为原生 ios 应用程序。这将允许我们拥有一个“原生”iOS 应用程序和一个适用于其他设备的优秀移动应用程序。

但是,这让我觉得有点奇怪,我想知道这样的计划会有什么陷阱。有人有这方面的经验吗?

谢谢, 特雷

【问题讨论】:

总体而言,与原生体验相比,HTML5 体验有所欠缺(参见 Facebook 切换到原生)。但是,如果您只是想进入应用商店并且已经拥有一个 HTML5 网络应用,那么这显然可以节省大量时间。我听说很多人抱怨 PhoneGap 和其他包装器。现在网上有一个关于这个的巨大争论,但我想说这真的取决于用户体验的重要性。 LinkedIn 的应用程序是带有 Backbone/Node 的 HTML5,你可以看出来,但它确实有效。所以双方都有意见。 【参考方案1】:

作为 Web 应用程序您可能仍会遇到的任何陷阱。不要尝试做任何 OpenGL 类型的应用程序,但如果它更像是一个网页,那么这对你来说应该没问题。

但是,使用现有的一些框架,您可能会获得稍微“更丰富”的体验,因为您可以访问网络应用程序不允许使用的本机电话工具(振动、GPS 等)

看看PhoneGap。他们缺乏大量的文档,但有很多人在使用它,并且已经“通过挑战”,你可以说。

综上所述,如果您不想与市场(iTunes、android Marketplace 等)打交道,您可以随时使用离线 HTML5 应用程序。用户访问网页的位置,它缓存了离线运行应用程序所需的所有文件。这与 Google 在被 iTunes 商店拒绝时对 Google Voice 所做的方法类似。

【讨论】:

【参考方案2】:

WebView 中的 HTML5 功能非常棒(而且还在不断增长)。你几乎可以做任何事情。

但如果你想使用一些通过 HTML5 无法访问的特殊功能(或包含一些 3rd-party ObjC 库),你可以设置一个非常简单的interaction between ObjC and javascript

【讨论】:

【参考方案3】:

Trigger.io 也是一个选项。这些天比Phonegap好多了。仅作为此页面添加是严重的 google-SEOed。

【讨论】:

以上是关于使用 UIWebView 构建 HTML5 iOS 应用的主要内容,如果未能解决你的问题,请参考以下文章

我们如何克服 UiWebView/iOS Safari 上 HTML5 视频缺少的静音/音量属性?

UIWebView 间歇性拒绝访问 html5 数据库存储

UIWebView 无需转到 iOS 的视频播放器即可播放 Html 5 视频

为 iOS 构建自己的基于 WebKit 的 UIWebView 可行吗?

MPMoviePlayerViewController 和 UIWebView HTML5 视频

位置服务在 iOS10 中无法与 UIWebView 一起使用