iOS開發webView的使用二


#import "ViewController.h"

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

@end

@implementation ViewController

#pragma mark ----------------------
#pragma mark Life Cycle
- (void)viewDidLoad
{
    [super viewDidLoad];
    
    NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    
    //加載網頁
    [self.webView loadRequest:request];
    
    //設置代理
    self.webView.delegate = self;
}

#pragma mark ----------------------
#pragma mark Events
- (IBAction)goBackBtnClick:(id)sender
{
    
    [self.webView goBack];
}
- (IBAction)goForwardBtnClick:(id)sender
{
    [self.webView goForward];
    
}
- (IBAction)reloadBtnClick:(id)sender
{
    [self.webView reload];
}

#pragma mark ----------------------
#pragma mark UIWebViewDelegate

//即將加載某個請求的時候調用
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSLog(@"%@",request.URL.absoluteString);
    //簡單的請求攔截處理
    NSString *strM = request.URL.absoluteString;
    if ([strM containsString:@"360"]) {
        return NO;
    }
    return YES;
}

//1.開始加載網頁的時候調用
-(void)webViewDidStartLoad:(UIWebView *)webView
{
    NSLog(@"webViewDidStartLoad");
}

//2.加載完成的時候調用
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSLog(@"webViewDidFinishLoad");
    
    self.goBack.enabled = self.webView.canGoBack;
    self.goForward.enabled = self.webView.canGoForward;
}

//3.加載失敗的時候調用
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
    NSLog(@"didFailLoadWithError");
}

@end

#####8 WebView的基本使用

 

```objc

1 概念性知識

    01 webView是有缺點的,會導致內存泄露,而且這個問題是它系統本身的問題。

    02 手機上面的safai其實就是用webView來實現的

    03 現在的開發並不完全是原生的開發,而更加傾向於原生+Html5的方式

    04 webView是OC代碼和html代碼之間進行交互的橋梁

 

2 代碼相關

/*A*網頁操控相關方法**/

    [self.webView goBack];      回退

    [self.webView goForward];   前進

    [self.webView reload];      刷新

 

    //設置是否能夠前進和回退

    self.goBackBtn.enabled = webView.canGoBack;

    self.fowardBtn.enabled = webView.canGoForward;

 

/*B*常用的屬性設置**/

    self.webView.scalesPageToFit = YES; 設置網頁自動適應

    self.webView.dataDetectorTypes = UIDataDetectorTypeAll; 設置檢測網頁中的格式類型,all表示檢測所有類型包括超鏈接、電話號碼、地址等。

    self.webView.scrollView.contentInset = UIEdgeInsetsMake(50, 0, 0, 0);

 

/*C*相關代理方法**/

    //每當將加載請求的時候調用該方法,返回YES 表示加載該請求,返回NO 表示不加載該請求

    //可以在該方法中攔截請求

    -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

    {

        return ![request.URL.absoluteString containsString:@"dushu"];

    }

 

    //開始加載網頁,不僅監聽我們指定的請求,還會監聽內部發送的請求

    -(void)webViewDidStartLoad:(UIWebView *)webView

 

    //網頁加載完畢之后會調用該方法

    -(void)webViewDidFinishLoad:(UIWebView *)webView

 

    //網頁加載失敗調用該方法

    -(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error

 

/*D*其它知識點-加載本地資源**/

    NSURL *url = [[NSBundle mainBundle] URLForResource:@"text.html" withExtension:nil];

    [self.webView loadRequest:[NSURLRequest requestWithURL:url]];

```

 

#####9 HTML

```objc

1.Html決定網頁的內容,css決定網頁的樣式,js決定網頁的事件

2.html學習網站:http://www.w3school.com.cn

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM