ios上webview与浏览器webview

来源:互联网 发布:1390清零软件中文版 编辑:程序博客网 时间:2024/06/06 13:58

1.ios上的webview

在ios中有自己的浏览器组件,他就是UIWebView,UIWebView是iOS上对WebKit的封装,WebKit是渲染引擎,UIWebView是渲染引擎和JS引擎的组合。

UIWebView是基于移动版的Safari的,所以它的性能表现十分有限。特别是在对几乎每个Web应用都会使用的JavaScript,表现的尤为糟糕。 

2.ios浏览器上的webkit

混合应用和原生应用类似。它们也是从Google Play或App Store上安装,只不过它们是使用HTML、CCS、JavaScript之类的技术开发的。浏览器引擎用于解析、运行和显示这些应用,每个操作系统都为引擎导出了API与之交互。在Android下,这个引擎就是WebView,iOS下则叫WKWebView。开发者可以在他们的应用中嵌入Web内容,以及访问那些一般的移动网站无法访问的资源,比如摄像头、文件系统和NFC等等 。

在WWDC 2014发布会上发布iOS 8中,apple公布了WebKit框架,这意味着OSX和IOS开发者将共用同样的开发库,新改变可以提高开发者编写的代码的重复使用性。WebKit框架使用WKWebView来代替IOS的UIWebView和OSX的WebView,并且使用Nitro JavaScript引擎,这意味着所有第三方浏览器运行JavaScript将会跟safari一样快。

WKWebView 简介

WKWebView 是苹果在 iOS 8 中引入的新组件,目的是给出一个新的高性能的 Web View 解决方案,摆脱过去 UIWebView 的老旧笨重特别是内存占用量巨大的问题。

苹果将 UIWebViewDelegate 与 UIWebView 重构成了 14 个类和 3 个协议,引入了不少新的功能和接口,这可以在一定程度上看做苹果对其封锁 Web View 内核的行为作出的补偿:既然你们都说 UIWebView 太渣,那我就造一个不渣的给你们用呗~~ 众所周知,连 Chrome 的 iOS 版用的也是 UIWebView 的内核。

WKWebView 有以下几大主要进步:

  1. 将浏览器内核渲染进程提取出 App,由系统进行统一管理,这减少了相当一部分的性能损失。

  2. js 可以直接使用已经事先注入 js runtime 的 js 接口给 Native 层传值,不必再通过苦逼的 iframe 制造页面刷新再解析自定义协议的奇怪方式。

  3. 支持高达 60 fps 的滚动刷新率,内置了手势探测。


3.安卓上的浏览器

WebView一直以来都是Android的核心组件,以前只有在操作系统升级的时候才会更新。由于Android版本的发布速度一般较慢,并且各个厂商之间的节奏又有所不同,不是所有的手机和平板电脑都能同时升级到最新版本的(如果真要升级的话),这样就导致了用户无法使用最新的功能,或受到安全漏洞的威胁。在KitKat发布后,Chrome开发团队承认了这个问题,并且打算把浏览器引擎变成一个定期更新的组件。

从Android Lollipop开始,有一个新功能叫可升级的WebView。顾名思义,现在这个WebView作为一个常规的app,能从Google Play上得到更新。这不仅保证了重要的安全更新能及时部署到设备上,也使得新的功能和API能及时推送给依赖WebView的应用的开发者们。

3.区别

苹果也在iOS 8中尝试支持更多的HTML5功能。一件出了名的事就是用WKWebView替代了旧的引擎UIWebView。在以前的iOS版本中,混合应用无法达到原生Safari应用的JavaScript性能水平,因为苹果限制了Safari的JavaScript引擎Nitro的使用,使UIWebView变得很慢。

iOS 8也支持以下的HTML5功能:

· WebGL:WebGL是一种3D绘图标准,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。

· IndexedDB:IndexedDB是HTML5规范里新出现的浏览器里内置的数据库。对于在浏览器里存储数据,你可以使用cookies或local storage,但它们都是比较简单的技术,而IndexedDB提供了类似数据库风格的数据存储和使用方式。存储在IndexedDB里的数据是永久保存,不像cookies那样只是临时的。IndexedDB里提供了查询数据的功能,在online和offline模式下都能使用。你可以用IndexedDB存储大型数据。

· HTML模板

· 导航/高精度计时

· SVG片段标识符


 

有时间我会接着更新的

1 0