iOS 9 -- SFSafariViewController

1.在开发中用到网页是经常的事,当是有时候我们加载网页时候会出现一些缓慢、效率低、占内存等问题。

   网页的出现在1991年,而iOS系统的出现在2007年。iPhone出现的时候就已经有很多的web内容了,这样iOS必须提供一种方法来显示web内容。

   在iOS 9中,我们有不同的方法来渲染web内容,并且根据具体的需求,开发者可以评估不同的方法,然后选择一个更适合他们的方法。让我们看看开发者可以采用的不同的解决方案。

UIWebView的使用:

  UIWebView是web使用的始祖,它可以适应各种iOS版本,可支持打开各种不同文件格式,例如 txt,docx,ppt,,音视频文件等。

  缺点就是占用内存大,使用效率低、不灵活。无法清除本地缓存数据。

  WKWebView是在iOS8出现后引入的,比UIWebView年轻,效率方面也比它高,但是好像bug挺多的

  iOS9后引入了SFSafariViewController

下面就介绍一下SFSafariViewController的使用

  这是一个特殊的View Controller,而不是一个单独的 View,和前面两个的区别

  在当前App中使用Safari的UI框架展现Web内容,包括相同的地址栏,工具栏等,类似一个内置于App的小型Safari

  共享Safari的一些便利特性,包括:相似的用户体验,和Safari共享Cookie,iCloud Web表单数据,密码、证书自动填充,Safari阅读器(Safari Reader)

  可定制性比较差,甚至连地址栏都是不可编辑的,只能在init的时候,传入一个URL来指定网页的地址

首先得引入工程中得#import <SafariServices/SafariServices.h>  

代码:

#import <SafariServices/SafariServices.h>

 

@interface ViewController ()<SFSafariViewControllerDelegate>

 

@end

 

@implementation ViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

    

    //打开点击按钮

    UIButton *openClickBtn = [[UIButton alloc]initWithFrame:CGRectMake(self.view.frame.size.width/2-50, self.view.frame.size.height/2-15, 100, 30)];

    [openClickBtn setTitle:@"打开网页" forState:UIControlStateNormal];

    [openClickBtn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];

    [openClickBtn addTarget:self action:@selector(openClick) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:openClickBtn];

    

}

 

- (void)openClick{

   NSString *urlStr = @"http://www.baidu.com";

    SFSafariViewController *sfViewController =[[SFSafariViewController alloc]initWithURL:[NSURL URLWithString:urlStr]];

    sfViewController.delegate = self;

    [self presentViewController:sfViewController animated:YES completion:^{

        

    }];

}

 

posted @ 2016-03-02 15:05  夣柯  阅读(1861)  评论(0编辑  收藏  举报