【问题标题】:Will Safari Guidelines work for iOS Webkit Hybrid applications?Safari 指南是否适用于 iOS Webkit 混合应用程序?
【发布时间】:2013-06-04 12:57:03
【问题描述】:

我基本上是一名原生 iOS 应用程序开发人员,最近涉足 HTML 应用程序领域。

我即将开发多平台网络应用程序,该应用程序应该可以在桌面、iOS 手机、Android 手机、Windows 手机上运行。所以我正在寻找通用的 HTML Web 支持文档。

为此,我找到了一些 Apple 的 Safari Web 开发指南。以下是一些参考链接

所以我的问题是,所有这些指南都支持 Apple 提供的所有浏览器或任何特定浏览器?

  • 仅限 Mac OS Safari 浏览器
  • iOS Safari 浏览器
  • iOS Web-Kit 开发浏览器 (UIWebView)

我已尝试查看文档,但没有具体提及。

【问题讨论】:

    标签: html web-applications safari cross-platform hybrid-mobile-app


    【解决方案1】:

    出于显而易见的原因,Apple 提供的指南将针对 Safari (Webkit),但应该适用于大多数浏览器。在构建您的网络应用程序时,您应该将其视为网站,确保采用progressive enhancement。在为您的 Web 应用程序设计样式时,请记住 CSS3 引入的许多功能仍然需要针对特定​​浏览器的供应商前缀。 CSS3 Please 是一个方便的资源,可确保您不会遗漏任何内容。

    这里有一些来自 Filament(jQuery 开发者)的方便的小工具,它们可能会在整个过程中为您提供帮助,尽管并非绝对需要:

    https://github.com/filamentgroup/Southstreet

    更具体到您的问题,Apple 文档提到了为 Safari 开发的各个方面,例如视口元标记。这并不特定于 Safari 或 Webkit,对于让您的 Web 应用程序在所有设备上看起来和工作正常来说确实是必不可少的。



    其他资源

    浏览器支持:
    http://caniuse.com/
    http://html5please.com/

    HTML5 样板:
    http://html5boilerplate.com/

    HTML5 Boilerplate 应该足以让您开始使用,并且包含 Modernizr 插件,它允许您根据每个浏览器支持的内容创建 polyfills

    我是一名前端开发人员,构建了 Web 应用程序和混合应用程序,并且我一直尝试将相同的标准应用于 Web 应用程序,就像我对每个网站所做的那样:) 与以往一样,可能会有很小的需要修复以使其在所有设备上的外观和工作方式与预期完全一致 - 测试、测试、测试。


    框架

    Ember: 用于构建 Web 应用程序的 JS 框架,包括支持使用 Handlebars 进行快速模板。

    Cappuccino :采用 Obj-J 语言并允许在 X-Code 中使用 Interface Builder,因此可能是更适合像您这样的本地 iOS 开发人员。

    Sproutcore : 类似于 Ember,只是功能更强大一些。


    HTML5 数据处理

    Data Binding:您可能想看看使用 IndexedDB 的数据绑定。这有点像拥有一个客户端数据库,但与 MySQL 或典型情况下的 Core Data 相比,它的功能非常有限。

    Offline Storage:对可用的不同选项进行很好的比较用于离线客户端存储。


    模板和用户界面

    Bootstrap :作为一名程序员,您可能需要一些帮助以使 UI 元素脱离实际。 Twitter 的 Bootstrap 是最受欢迎的选择,基本上是将 Twitter 自己的 UI 元素捆绑在一起并开源。

    Foundation:Bootstrap 的替代品。

    FlatUI:一个不太完整的替代方案。

    Handlebars :前面提到过,这允许您构建客户端模板,有点类似于 PHP 中使用的 Smarty 模板。


    我确定我在这里错过了很多内容,但希望这足以让您在正确的地方寻找正确的东西。

    【讨论】:

    • 首先感谢您的详细回答。这真的很有帮助。正如我所提到的,我是本地开发人员,因此有没有此类应用程序的参考示例代码 - 它可以帮助我更快地理解以轻松重新开始我的工作。
    • 你的网络应用的本质是什么?
    • 它的LMS系统项目,所以如果用户处于在线模式,应该可以查看/下载最新数据。下载的数据应该在移动应用程序内存中。对于离线模式,应显示上次保存的数据 + 下载的数据。对我来说,主要部分是在线模式 - 缓存、保存数据和离线模式 - 访问上次保存的数据。
    • 我已经更新了我的答案。另外,请查看Absorb LMS,这似乎与您想要实现的目标相似。
    • 不用担心。接受答案? :)
    猜你喜欢
    • 2014-11-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2016-08-19
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多