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); }];}
就可以解决版本支援的问题啰。