茉莉网
当前位置:首页»ios 开发

web网站转ios应用 HTML5能取代Android和iOS应用程序吗 这个好理解。文件分为三段

2018年01月06日 来源:web网站转ios应用 大字体小字体

  图标的添加方法是在head区添加如下代码:

  启动画面的添加方法也差不多:

  事实上,更改页面文件并不会导致离线文件也更新,而清掉缓存也不会清掉离线的文件!(2012年8月27日注:事实上,这里发生的情况是带有manifest属性的页面即使没有被写到manifest文件中,也会被离线下来,导致入口文件根本更新不到。)更新缓存的条件是:.manifest内容发生变化!所以如你看到那样,我在最前面加入了版本,这样一方面可以标版本,另一方面刚好让程序更新缓存。

  至此,一个完美的WebApp就诞生了!

  正方:原生APP速度更快

  图片处理引擎已经使用web加速。现在硬件加速也已经开始应用了。看看用上硬件加速的canvas(图表来源)

  总得来说,移动设备在发展,而web也同样在快速变化。桌面浏览器本身,有5家主要浏览器开发商在改进现有标准,丰富新的功能。所以原生App在快速前进,同时,web也在缩小差距。

  当一个web视图开始加载一个frame的时候会触发它。看起来很符合我们的需求。我们可以在页面里创建一个iframe,使用js代码去改变它的src来触发这个调用,从而实现js对Objc的调用。具体的实现方式就不在此赘述,有兴趣的可以看一下我写的这个简单测试。

  ManifoldJS通过获取网站meta-data信息,即可产生针对Android、ChromeOS、FirefoxOS,iOS以及Windows各平台的“本地”应用。号称创建跨平台、跨设备本地应用最简单的方法。

  然后在viewDidLoad方法中初始化这个WebView实例,并设置其要访问的网站的URL,然后将其添加到视图中去:

  要实现离线,首先得有一个先决条件:能修改web服务器的MIME(确切地讲,是MIME中有manifest类型)。关于MIME是什么就不详细介绍了。(2012年8月27日,关于这点也不太准确,在PC端的chrome中,并不关于.manifest文件的MIME,但是在iOS4.3和5.0的safari中,都需要有准确的MIME才能使离线正常工作。)

  再接下来,就是告诉iOS,我们的程序需要离线,方法是在访问的页面中的html标签中加入一个属性标记上面说的manifest文件:

  在Webr的帮助下,用户创建动态网站时无需繁杂的步骤,也不用担心写代码或者是网站开发程序的问题。Webr首先会让用户先选择一个网站主题,将网站的整体布局以及美学效果确定下来,随后,用户只需跟着Webr提供的指导一步步进行操作即可,比如给网站拟一个标题、添加图片、页面、选择一个主题,确定网站的外观......一切准备就绪之后,人们就可以将制作好的网页发布了。

  运行效率

  开发感受

  浏览器/runtime的互不兼容(碎片),反过来看做APP也是一样。用Java写了Androidapp,然后又要面对iOS的ObjectiveC。如果能写一个程序,马上能在Android和iOS上运行,多省事啊。这咱还没提WebOS,BlackBerry,WindowsMobile呢。当然,这是理论上的。要是想让程序在每个平台都跑得很漂亮,得做不少调试和妥协。这对很多原生APP也是一样的。不同OS版本,不同的设备。。。

  Web最初的功能只限于文档展示,而不是程序应用,貌似最近俩星期才有了JS。但有了JS后,web的世界马上就不一样了。更何况web不只是静止的,HTML5,CSS3,EcmaScriptHarmony(谁知道这是什么?)都给开发者极大帮助。你是喜欢C++,java,JavaScript,那你的个人爱好,也是基于你已经攒下的代码。但是现在没人能否认JavaScript也和前者站在同一擂台上。

  所谓的Web碎片化,一直都是如此。但好消息是现在已经有很多不错的解决办法。Modernizr库,用得好的话,可以帮你兼容一大批主流设备,不管是啥系统,哪个牌子的。看看我们2011年的GoogleIO演示。

  访问一次,只要文件传输完毕,我们的应用就成功离线啦!这时断开网络再次打开,依然可以使用!

  正方:App里可以开发出更丰富的功能

  反方:一般都是Web更简单,特别是需要兼容不同设备的时候。

  移动应用程序(App)和HTML5都是目前最火的技术,二者之间也有不少重叠之处。在移动设备浏览器里运行的html5的web页面,也可以重新打包成不同平台上运行的app。目前很多浏览器都有很好的跨平台支持,(译注:firefox居然可以在android中使用和windows下同样的浏览器内核),HTML5的web方案,对开发者来说更为方便。完成一次,即可多平台使用。但这确实可行吗?仍然有许多必要原因,使得开发者选择了app开发。很明显,很多人已经在这么做了。本文将详细分析两种方案的优劣。

  原生APP使用强壮的程序语言(Java,ObjectiveC,C++)。适合写复杂程序,经过历史验证,API丰富。在桌面环境可以方便的用模拟器测试。而Web程序的runtimes和乱七八糟的各路浏览器让人头大。

  大量新生移动设备的兴起,改变了互联网的未来。在技术的发展上,HTML5会取代App应用吗?或者说能够在多大程度上取代呢?在HTML5规范中,已经加入了相机、磁力罗盘、GPS信息的支持。很多新兴浏览器也已经开始支持这些新特性。能否用一个统一的HTML5来替代android和ios并行开发的双重成本呢?以下译自MichaelMahemoff的一篇文章,详细分析了HTML5能否取代Android和iOS应用程序。

  功能丰富

  介绍

  反方:APP是挺强,但Web也正在迎头跟进

  我们把移动功能分成两类。程序本身和程序与系统的结合。比如android里,加入widget图标或者通知提醒之类的。App对这两者都没问题。不用多说,这是肯定的。

  反方:现如今Web已经快多了,而且多数应用也用不着那么快。

  正方:原生APP好写

  要开发3D游戏的就不用抬杠了,但对于平而来说,新闻、邮件、时间管理、社交网络,这些用Web都够用了。试试SteveSouders的手机性能测试工具。另外,越来越多的框架结合WebGL,可以发挥OpenGL的优势了。比如ImpactJS,帮助开发JS游戏。

  我建立的名叫cache.manifest,内容如下:

  确实很多原生app实现的功能是HTML5望尘莫及的。不管你的web做的再牛,如果停留在一个没有摄像头支持的沙盒中,很多场合还是玩不转。幸运的是,现在没有这样的沙盒限制了。如果你需要你的web照相片,可以做一个负责照像的app,再把你的web打包进这个应用里面。开源的PhoneGap框架是这么干的。这样widget,手机提醒也都没问题了。

  原生APP没有瓶颈,而且可以直接调用GPU加速、使用多线程。

  为了更像本地App,我们要隐藏掉地址栏和系统工具栏,而在隐藏这个之前,我们必须设定程序全屏,否则无效。(2012年8月27日注:这里之前理解有误,第二个设定其实是底栏样式。)

  这说法有点落伍了。Chrome发布之时带来的JavascriptV8,给Web速度带来的飞跃。而现在,计算速度变得更快了:

  到这里,我们的App已经很像原生App了。可是,如果断网了怎么办?于是,最后的一步——离线。离线之后,我们的程序就可以在没有网络的时候正常运行,完全和原生App一样了!

  但这种混合开发的问题在于,增加了复杂性,而且不象传统web那样可以直接在浏览器里运行。这个问题短时间内恐怕没辙。好在现在网络标准在不断的高速扩充,先进的浏览器也在一直跟进。Android3.1已经支持camera了。iOS浏览器也支持WebSocket和设备方向检测了。

相关内容

编辑精选

Copyright © 2015 茉莉网 http://www.szmlwh.cn. All rights reserved.