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所需要的参数,加载过程,以及需要实现的协议方法

  • 相关阅读:
    数据库性能优化
    AutoDetectChangesEnabled及AddRange解决EF插入的性能问题
    实体框架 5 性能注意事项
    使用JS传递数组型数据回服务器
    Code First配合Entity Framework Power Tools Beta 4使用
    HighChart 体验之旅 (后台传递JSON参数和数据的方法)
    System.Transactions事务超时设置
    ASP.NET站点部署相关
    js 字符串转化成数字
    发布.net 4.0的站点到IIS7.5下时无法访问
  • 原文地址:https://www.cnblogs.com/iOS-dd/p/3277205.html
Copyright © 2011-2022 走看看