zoukankan      html  css  js  c++  java
  • UI控件---UIWebView

    UIWebView是内置浏览器控件,可以用来浏览网页,文档等,今天就试着做一个简易的浏览器!

    定义url的初始化方法和返回,前进,刷新三个方法,实现UIWebViewDelegate协议

    @interface WebViewController : BaseViewController<UIWebViewDelegate>{
        
        NSString *_url;
    }
    
    -(id)initWithUrl:(NSString*)url;    //创建viewController的时候初始化url
    - (IBAction)goBack:(id)sender;      //返回
    - (IBAction)goForward:(id)sender;   //前进
    
    - (IBAction)reload:(id)sender;      //刷新
    @property (retain, nonatomic) IBOutlet UIWebView *webView;
    
    @end

    UIWebView的loadRequest方法可以加载一个url地址,需要把url地址变成NSURLRequest参数

    - (void)viewDidLoad
    {
        [super viewDidLoad];
    
        NSURL *url = [NSURL URLWithString:_url];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        [_webView loadRequest:request];
        
        self.title = @"正在加载";
        
        [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;  //风火轮
    
    }

    3个方法的实现

    - (IBAction)goBack:(id)sender{
        
        if ([_webView canGoBack]) {
            [_webView goBack];
        }
    }
    - (IBAction)goForward:(id)sender{
    
        if ([_webView canGoForward]) {
            [_webView goForward];
        }
        
    }
    
    - (IBAction)reload:(id)sender{
        
        [_webView reload];
    }

    实现协议方法,加载成功和加载失败后调用的方法

    #pragma mark - WebView Delegate
    - (void)webViewDidFinishLoad:(UIWebView *)webView{
        
        [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;  //关闭风火轮
        NSString *title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];//解析JS代码
        self.title = title;
        
    }
    
    - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
        
        UIAlertView *alterview = [[UIAlertView alloc] initWithTitle:@"" message:[error localizedDescription]  delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
        [alterview show];
        [alterview release];
    }

    总结:了解了webView所需要的参数,加载过程,以及需要实现的协议方法

  • 相关阅读:
    欧几里得算法&&扩展欧几里得算法
    POJ-1006 Biorhythms (生物节律)
    第3周实践项目7 删除链表元素最大值
    第3周实践项目1 顺序表的基本运算
    第三周项目4(2)-顺序表应用 将所有奇数移到所有偶数前面
    第3周实践项目5 -顺序表的应用 拆分单链表
    SDUT-2144 图结构练习——最小生成树
    SDUT-3362 数据结构实验之图论六:村村通公路
    Codeforces Round #616 (Div. 2)题解
    1.29 educational round 81
  • 原文地址:https://www.cnblogs.com/iOS-dd/p/3277205.html
Copyright © 2011-2022 走看看