iOS APP 开发 OC 第九天,UIWebView & WKWebView

tags: OC 30 day


我们来延续上一篇网路请求原理做出UIWebView吧

把网路请求做成一个方法

监於单一职责,把网路请求做成一个方法。

-(NSURLRequest *) makeURLRequest{
    //发送请求
    NSURL *url = [NSURL URLWithString:@"https://tw.yahoo.com"];
    //请求
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    return request;
}

制作出一个UIWebView

-(void)makeWebView:(NSURLRequest *)request{
    self.webView = [[UIWebView alloc]init];
    [self.webView loadRequest:request];
    [self.view addSubview:self.webView];
    [self.webView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(self.view.topMargin);
        make.left.right.bottom.equalTo(self.view);
    }];
}

注意,这边的约束是用Masonry做的。
另外值得注意的是,topMargin,他帮我们将view局限在safe area之中。

为什麽不写在一起呢?

你会发现,这块UIWebView并不局限在特定的Request,如果今天要显示的是不同的页面,我也可以轻松的抽换。
试试看

NSURLRequest *urlRequest = [self makeURLRequest];
[self makeWebView:urlRequest];

来试试看制作出来的效果吧~

但是这样是有问题的

'UIWebView' is deprecated: first deprecated in iOS 12.0 - No longer supported; please adopt WKWebView.

因为在iOS 12.0 之後,他将不支援,那怎麽办呢?

WKWebView

这个是IOS8之後新增的一个类,也是苹果推崇的一个新的类。

#import <WebKit/WebKit.h>

import这个Kit

-(void)makeWebView:(NSURLRequest *)request{
    WKWebView *webView = [[WKWebView alloc] init];
    [webView2 loadRequest:request];
    [self.view addSubview:webView2];
    [webView2 mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(self.view.topMargin);
        make.left.right.bottom.equalTo(self.view);
    }];
}

就可以解决版本支援的问题罗。


<<:  What is the reason behind Pacbell email login issue?

>>:  从国家标准技术研究院(NIST)的角度来看,满足最低安全要求的控制基准的最佳来源-准则(Guidelines)

DAY29 - [React] useContext 实作篇

今日文章目录 需求说明 过程纪录 问题统整 重点笔记 参考资料 需求说明 加入深浅主题色切换。 过...

Day21 xib传值的小教室2

接续昨天。 到到二个页面的程序码中,新增一字串变数,也在生命周期中,使此变数会等於第二页的文字格变数...

DAY23-EXCEL统计分析:双因子变异数分析实例

我们可以利用上次相同的题目来做此双因子变异数分析。 某间面包店的面包师傅想研究不同配方做出的面包所销...

Day 16 - [语料库模型] 04-断词工具比较 Jieba vs CKIP

我们前面说过,中文不像英文,字与字中间与空白相间,所以中文句子要搭配 TF-IDF 前,需要先经过适...