整理 | 祝涛
出品 | CSDN(ID:CSDNnews)

著名的苹果博主John Gruber最近掀起了一场网络纷争,他建议网络开发者“不应该在网络浏览器中创建一个‘本地式的应用程序’。” Gruber表示,他提出这个观点,与苹果在其iOS平台上垄断浏览器引擎招致越来越多的批评有关。从网友的角度看,这样的说法是在替苹果辩护。

苹果强迫谷歌、微软和Mozilla等浏览器厂商使用WebKit浏览器引擎限制了Web应用在iOS上的发展。这就是为什么先进的网络应用程序PWAs的许多功能不能在iPhone或iPad上运行的原因。(编者注:Progressive Web Apps,简称PWAs,是指2017年2月4日,谷歌推出的“小程序”增强型网页应用,它无需下载安装,却可以和本地APP一样,放置在桌面上。

不过,Gruber的观点中确实暗含着一个有趣的问题:在模仿本地应用的高级功能方面,Web应用应该走多远?要回答这个问题,首先需要了解Web应用已经走了多远。

Web应用简史

Web应用程序是一种可以通过Web访问的应用程序,最大的好处是用户可以很容易地访问应用程序——用户只需要有浏览器即可,不需要再安装其他软件

在大部分时间里,Web一直是应用程序和网页的平台。1991年,Web只是一个以文档为中心的平台,但在1993年,有了CGI脚本后,Web就开始演变成一个应用程序平台。在90年代中后期,网景和微软都把他们的浏览器变成了网络应用程序平台,到21世纪初,我们有了Ajax应用程序——所谓的Web 2.0时代的一个关键驱动因素。

Gruber反对将Web作为应用平台的论点是随着苹果的iOS和谷歌的安卓系统的到来而产生的。它们的出现使得互联网转变为一个主要由智能手机驱动的应用平台。众所周知,Instagram在2010年发布时是一款只支持iOS系统的应用,而完全忽略了Web。直到今天,Instagram的网页浏览器功能仍然有限。因此,随着iOS和Android开始主导互联网市场,Web在一定程度上被甩在了后面

然而,在近几年,将Web作为应用程序开发平台的手法“重现江湖”。这不仅得益于像React这样JavaScript支持的前端框架,还要感谢最近Web标准的进步。后者在很大程度上要归功于WHATWG (Web超文本应用技术工作组),这是一个由苹果、谷歌、Mozilla和微软共同运营的组织。WHATWG运行的是它所谓的HTML“生存标准”,然后被万维网联盟(W3C)采纳为官方网络标准。

问题是,虽然谷歌,微软和Mozilla都致力于将Web作为一个平台来推进,但苹果显然不想削弱其iOS的人气。它希望下一个诸如Instagram这样的火爆软件依然建立在iOS上,而不是作为PWA(Progressive Web App,渐进式接近原生APP的Web应用程序)发布。这让我们想到了苹果备受争议的决定——将iOS上的网页浏览器引擎限制为自己的WebKit引擎

WebKit和Blink的区别

苹果的这个决定很大程度上是为了阻止谷歌的相关技术在iOS上运行谷歌率先开发的Blink浏览器引擎是Chromium开源项目的一部分,是Chrome在其桌面、Android和除iOS以外的所有操作系统上的一个重要组成部分。相比之下,iOS用户可以下载的Chrome版本(使用的是WebKit而不是Blink)就相形见绌了。

Blink项目所声明的任务是“使Web成为体验信息世界的首要平台,并提供世界上最好的网络平台实现。”这意味着Blink希望自己的引擎能够与原生应用直接竞争,成为消费者在互联网上的“首选平台”

虽然WebKit也是开源的,但它的目标并不是以应用程序为中心。WebKit被定位为“内容引擎”——这是一种微妙的方式,暗示人们Web浏览器应该坚守自己的路线,专注于内容,而不是去开发应用程序

相比之下,Blink称自己为“渲染引擎”(排版引擎),这是一个更加开放的定义(应用程序和网页都是渲染的)。此外,如果在应用程序中使用WebKit,那么WebKit应该是配角,而不是一个主角

Web应用为何要与本地原生应用竞争?

上述问题的答案很简单:Web应用应该被允许与本地应用竞争,因为Web是一个开放平台,允许开发者“一次编写,随处运行”。而反对Web应用的论点往往没有什么说服力。

像John Gruber这样的苹果粉丝认为,在iOS设备上,使用本地iOS开发平台创建的应用程序会更好。在他与Web应用粉丝的争论中,他提出“电池寿命、安全、隐私以及警惕Chrome主宰整个网络”是他支持苹果禁止第三方浏览器引擎的部分原因。他后来在帖子中进行补充,他认为“本地应用程序提供了更好的用户体验”。

Gruber没有提到的是,苹果禁止iOS上的第三方浏览器引擎正在抑制网络应用的创新在Android上运行的PWAs已经提供了与Android原生应用一样好的用户体验。虽然在iPhone上,本地应用确实比PWAs更好,但这只是因为苹果不允许第三方浏览器使用所有的Web应用技术

除了iOS浏览器引擎缺乏选择性,而且WebKit本身作为浏览器引擎是存在缺陷的。Alex Russell现在是微软Edge的合作伙伴项目经理,但在此之前,他曾担任谷歌Chrome的高级工程师多年。当他还在谷歌工作时,他发表了一篇关于WebKit的长篇评论,他认为:“苹果的网络引擎在兼容性和功能方面一直落后于其他公司导致了其他平台与苹果原生平台的巨大差距。”

综上所述,在iOS上,原生应用比Web应用更具竞争力,其主要原因如下:

  • 苹果阻止其他浏览器供应商使用他们自己首选的浏览器引擎;
  • 苹果的WebKit在应用功能方面跟不上Chromium等应用。因此,Web应用无法与iOS应用竞争是苹果的问题,而不是Web的问题

Web应用应该与原生应用一样吗?当然应该这么做,因为在Web上运行应用程序的历史悠久而丰富——可以追溯到1993年。由于智能手机应用程序的出现,Web应用程序在21世纪10年代初渐渐脱离了轨道。但现在,由于Web标准和围绕开源Web引擎的创新,Web再次成为一个万众瞩目的开发平台。也许下一个Instagram会建立在Web上。

参考链接:

  • https://thenewstack.io/apples-browser-engine-ban-is-holding-back-web-app-innovation/

iOS专宠WebKit,苹果正在扼杀Web应用创新?相关推荐

  1. 移动开发中的 Web:WebView、WebKit、JSCore、Web 优化、热修复、跨平台、Native、Hybrid……...

    移动开发领域近年来已经逐渐告别了野蛮生长的时期,进入了相对成熟的时代.而一直以来 Native 和 Web 的争论从未停止,通过开发者孜孜不倦的努力,Web 的效率和 Native 的体验也一直在寻求 ...

  2. ios 设备获取idfa_超4成用户选择升级iOS 14,35%苹果设备已无法获取IDFA

    最近,AppsFlyer发布了<2020中国应用全球化趋势洞察报告>,并在其中着重提到了和苹果iOS紧密相关的一些信息,包括iOS 14的推出以及由此引发的IDFA政策变更等等. 2020 ...

  3. ios签名软件_苹果企业签名常常掉怎样处理【苹果签名吧】

    对于使用ios苹果系统的开发者来说,可以在苹果app商店下载现在陈列的APP软件,但是没有陈列的APP软件只能使用苹果签名,通过上传到app签名渠道的方法下载.这种方法的缺点是,如果苹果ios签名无效 ...

  4. android加法服务类,iOS越来越像Android:苹果简单做加法远离精致

    原标题:iOS越来越像Android:苹果简单做加法远离精致 刚刚结束的WWDC2016的主题演讲中,苹果为我们带来了最新的iOS 10系统,官方称本次iOS 10的推出有着多大10项的重要更新,在用 ...

  5. 感恩节专宠有礼,送3本技术好书

    VOL 323 20 2021-11 今天距2022年42天 这是ITester软件测试小栈第323次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 0 ...

  6. 如果苹果公司允许其他手机厂商使用iOS系统,对苹果公司来说会有什么好处?

    如果苹果允许其他手机使用iOS,对苹果公司会有什么好处?也许很多人会回答:"这样做,百害而无一利,会给苹果公司造成毁灭性的打击."我不这么认为,如果苹果公司真的开放ios系统,虽然 ...

  7. iOS小技巧21-MacOS 苹果系统下Outlook打不开,显示“您需要最新版本的Outlook才能使用此数据库”

    iOS小技巧21-MacOS 苹果系统下Outlook打不开,显示"您需要最新版本的Outlook才能使用此数据库" 错误信息: 解决方法:按照下图的路径删除指定文件夹后,重新打开 ...

  8. ios阴阳是不显示服务器,阴阳师IOS登录异常怎么办 苹果不能正常登录解决办法...

    在11月11日阴阳师新版本更新后,许多苹果IOS服务器的玩家反馈登录异常,经常登录不进游戏,对此4399挽歌为大家带来具体解决方法,一起来看看阴阳师IOS登录异常怎么办 苹果不能正常登录解决办法吧! ...

  9. 桌上有一空盘,最多允许存放一个水果。爸爸可向盘中放一个苹果或放一个桔子,儿子专等吃盘中的桔子,女儿专等吃苹果。 试用P、V操作实现爸爸、儿子、女儿三个并发进程的同步。

    问题描述:桌上有一空盘,最多允许存放一个水果.爸爸可向盘中放一个苹果或放一个桔子,儿子专等吃盘中的桔子,女儿专等吃苹果. 试用P.V操作实现爸爸.儿子.女儿三个并发进程的同步. 问题分析及思路: 本题 ...

最新文章

  1. 面试官:Spring AOP、AspectJ、CGLIB 都是什么鬼?它们有什么关系?
  2. 【转】Source Insight 有用设置配置
  3. outside of class is not definition
  4. PHP-FPM Fastcgi 未授权访问漏洞(端口9000)
  5. 风控贷中环节应该监控哪些风险指标
  6. 认识三大方便的开源 Linux 防火墙生成器
  7. C#生成Excel出现8000401a的错误的另一种解决办法。
  8. 在PPAPI插件中创建本地窗口
  9. 史上最简单的spark教程第十章-SparkSQL编程Java案例实践(二)
  10. 怎么进入本地组策略编辑器
  11. android 转 ios 开发,如何快速从android开发转向ios开发--oc语法篇
  12. 震惊:爱测未来技术嘉年华竟然这些免费送
  13. 贸易进出口管理-报关单管理
  14. android适配器
  15. access有效性规则不为空值_在设置access有效性规则中,大于0并且小于100怎么写?...
  16. 【IoT】产品设计之思维模型:四种知识结构
  17. 【MySQL从删库到跑路】-1-安装MySQL-5.7
  18. postgresql 查看索引是否有效及索引使用情况
  19. 揭秘:古代五大美男的悲惨结局
  20. python爬取物流信息_手把手教你用Python爬取快递100查询你的物流信息

热门文章

  1. 计算机毕业设计Python+uniapp校友会管理系统小程序(小程序+源码+LW)
  2. 看服务器是物理机还是虚拟机,如何判断一台机器是物理机还是虚拟机
  3. Linux安装防火墙
  4. linux iscsi服务开启的,linux iscsi服务实现
  5. 年终总结等汇报类PPT写法
  6. jvisualvm启动提示“无法监视本地Java应用程序”
  7. python新旧特性过渡_转场(transition)(新)
  8. 不同HDR技术的比较
  9. html刷新网页基本方法
  10. (受益匪浅)-大四学长高项备考经验