iT邦幫忙

0

iOS APP 開發 OC 第九天,UIWebView & WKWebView

  • 分享至 

  • xImage
  •  
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);
    }];
}

就可以解決版本支援的問題囉。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言