UIWebView

UIWebView

  1. 父類是UIView
  2. 該控件專門用于顯示網(wǎng)頁,相關(guān)的網(wǎng)絡(luò)知識(shí)詳見網(wǎng)絡(luò)
1 概念性知識(shí)
    00 UIWebView是iOS內(nèi)置的瀏覽器控件
    01 webView是有缺點(diǎn)的,會(huì)導(dǎo)致內(nèi)存泄露,而且這個(gè)問題是它系統(tǒng)本身的問題。
    02 手機(jī)上面的safai其實(shí)就是用webView來實(shí)現(xiàn)的
    03 現(xiàn)在的開發(fā)并不完全是原生的開發(fā),而更加傾向于原生+Html5的方式
    04 webView是OC代碼和html代碼之間進(jìn)行交互的橋梁
    05 UIWebView不但能加載遠(yuǎn)程的網(wǎng)頁資源,還能加載絕大部分的常見文件,如html、htm、pdf、doc、ppt、txt、mp4..

2 代碼相關(guān)
/*A*網(wǎng)頁操控相關(guān)方法**/
    [self.webView goBack];      回退
    [self.webView goForward];   前進(jìn)
    [self.webView reload];      刷新
    [self.webView stopLoading]; 停止加載

    //設(shè)置是否能夠前進(jìn)和回退;在網(wǎng)頁加載完畢后設(shè)置
    self.goBackBtn.enabled = webView.canGoBack;//canGoBack只讀
    self.fowardBtn.enabled = webView.canGoForward;//canGoForward只讀

/*B*常用的屬性設(shè)置**/
    self.webView.scalesPageToFit = YES; 設(shè)置網(wǎng)頁自動(dòng)適應(yīng)
    self.webView.dataDetectorTypes = UIDataDetectorTypeAll; 設(shè)置檢測(cè)網(wǎng)頁中的格式類型,all表示檢測(cè)所有類型包括超鏈接、電話號(hào)碼、地址等。
    self.webView.scrollView.contentInset = UIEdgeInsetsMake(50, 0, 0, 0);

/*C*相關(guān)代理方法**/
    //每當(dāng)將加載請(qǐng)求的時(shí)候調(diào)用該方法,返回YES 表示加載該請(qǐng)求,返回NO 表示不加載該請(qǐng)求
    //可以在該方法中攔截請(qǐng)求
    -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
    {
        return ![request.URL.absoluteString containsString:@"dushu"];
    }

    //開始加載網(wǎng)頁,不僅監(jiān)聽我們指定的請(qǐng)求,還會(huì)監(jiān)聽內(nèi)部發(fā)送的請(qǐng)求
    -(void)webViewDidStartLoad:(UIWebView *)webView

    //網(wǎng)頁加載完畢之后會(huì)調(diào)用該方法
    -(void)webViewDidFinishLoad:(UIWebView *)webView

    //網(wǎng)頁加載失敗調(diào)用該方法
    -(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error

/*D*其它知識(shí)點(diǎn)-加載本地資源**/
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"text.html" withExtension:nil];
    [self.webView loadRequest:[NSURLRequest requestWithURL:url]];

UIWebView示例

@interface ViewController ()<UIWebViewDelegate>
@property (weak, nonatomic) IBOutlet UIWebView *webView;

@property (weak, nonatomic) IBOutlet UIBarButtonItem *goBack;
@property (weak, nonatomic) IBOutlet UIBarButtonItem *goforWard;
@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self test];
}
- (IBAction)goBackBtnClick:(id)sender
{
    [self.webView goBack];
}
- (IBAction)goForWardBtnClick:(id)sender
{
    [self.webView goForward];
}
- (IBAction)reloadBtnClick:(id)sender
{
    [self.webView reload];
}

-(void)test
{
    //創(chuàng)建請(qǐng)求對(duì)象
    NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];

    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    //傳一個(gè)請(qǐng)求對(duì)象
    [self.webView loadRequest:request];

    //設(shè)置代理方法
    self.webView.delegate = self;
}


-(void)webViewDidFinishLoad:(UIWebView *)webView
{
    self.goBack.enabled = self.webView.canGoBack;
    self.goforWard.enabled = self.webView.canGoForward;
}


//當(dāng)即將加載網(wǎng)頁請(qǐng)求的時(shí)候調(diào)用
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSLog(@"%@",request.URL.absoluteString);

    //攔截
    if ([request.URL.absoluteString containsString:@"dushu"])return NO;
    //如果返回YES那么表示可以加載
    //如果返回的是NO ,那么表示拒絕這個(gè)請(qǐng)求
    return YES;
}

/*
方法調(diào)用順序:
 http://www.baidu.com/
 webViewDidStartLoad
    https://m.baidu.com/?from=844b&vit=fps
    webViewDidStartLoad
    webViewDidFinishLoad
 webViewDidFinishLoad

 */










































































































































?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • IOS之UIWebView的使用 剛接觸IOS開發(fā)1年多,現(xiàn)在對(duì)于 混合式 移動(dòng)端開發(fā)越來越流行,因?yàn)殚_發(fā)成本上、...
    學(xué)無止境666閱讀 45,903評(píng)論 5 53
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,241評(píng)論 4 61
  • OS之UIWebView的使用 剛接觸IOS開發(fā)1年多,現(xiàn)在對(duì)于 混合式 移動(dòng)端開發(fā)越來越流行,因?yàn)殚_發(fā)成本上、速...
    知之未道閱讀 1,668評(píng)論 0 4
  • 逢一年期滿,年末將至之時(shí),我有一個(gè)毛病便也找上門來的,就是別扭,能從假頭別扭至假尾。說起起因,是源于母親鮮少與我共...
    07c61d6e2a9d閱讀 181評(píng)論 0 0
  • 【姓名】王雪冰 【導(dǎo)師】王玉印、袁文魁 【舵主】焦點(diǎn) 【導(dǎo)圖解說】 本次作業(yè)點(diǎn)評(píng),又挑選了三位新的小伙伴。點(diǎn)評(píng)的作...
    bingbing007閱讀 331評(píng)論 1 1