iOS中web内容显示的解决方案

概述##

在iOS中,开发者有三种方式来显示Web内容,Safari、自定义浏览器、SFSafariViewController

  • 各个方法简介
    • Safari:离开当前应用,跳转到Safari浏览器中加载页面。
    • 自定义浏览器:利用WKWebView或UIWebView从头开始创建浏览器。
    • SFSafariViewController:无需离开当前应用,即可使用Safari中的一些便利特性。
  • 支持版本
    • iOS 7 支持 UIWebView
    • iOS 8 支持 UIWebView、WKWebView
    • iOS 9/iOS 10 支持 UIWebView、WKWebView、SFSafariViewController

SFSafariViewController简介

SFSafariViewController是一个特殊的UIViewController,可在当前App使用Safari的UI框架展现Web内容,同时还能享受到Safari的一些便利特性,包括但不限于:

  • 与Safari相似的用户体验
  • 和Safari共享Cookie
  • 密码、证书自动填充
  • Safari阅读器
    SFSafariViewController的缺点:
  • 他的可定制性很差,包括地址栏都是不可编辑的,只能在init的时候传入一个URL来指定网页的地址。
  • SFSafariViewController 现在只支持 present 出来,而不能在 NavigationController 中 Push 出来(横向推出来)。


    iOS中web内容显示的解决方案_第1张图片
    SFSafariViewController.png

WKWebView与UIWebView的优劣对比

WKWebView属于WebKit框架,WebKit推出于iOS 8.0和OS X 10.10,
与UIWebView相比,WKWebView拥有更快的加载速度和性能,更低的内存占用,除此之外,还有以下优势:

  • 更多的支持HTML5的特性
  • 高达60fps的滚动刷新率以及内置手势
  • 与Safari相同的JavaScript引擎
  • 将UIWebViewDelegate与UIWebView拆分成了14类与3个协议
  • 另外用的比较多的,增加加载进度属性:estimatedProgress

Demo演示

你可能感兴趣的:(iOS中web内容显示的解决方案)