zoukankan      html  css  js  c++  java
  • iOS WebView的用法

    一、UIWebView 可以加载和显示某个URL的网页,也可以显示基于HTML的本地网页或部分网页:

    a. 加载 URL

    1. WebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 44, 320, 400)];   
    2. NSString *path = @"http://www.baidu.com";   
    3. NSURL *url = [NSURL URLWithString:path];   
    4. [WebView loadRequest:[NSURLRequest requestWithURL:url]];   

    b. 加载 HTML

    NSBundle *bundle = [NSBundle mainBundle];
    NSString *resPath = [bundle resourcePath];
    NSString *filePath = [resPath stringByAppendingPathComponent:@"Home.html"];
    [webView loadHTMLString:[NSString stringWithContentsOfFile:filePath]
      baseURL:[NSURL fileURLWithPath:[bundle bundlePath]]];

    二、使用网页加载指示,加载完成后再显示网页出来

        首先要指定委托方法:

           webView.delegate =self; 

        UIWebView主要有下面几个委托方法:

          1、- (void)webViewDidStartLoad:(UIWebView *)webView;开始加载的时候执行该方法。
          2、- (void)webViewDidFinishLoad:(UIWebView *)webView;加载完成的时候执行该方法。
          3、- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;加载出错的时候执行该方法。

         这样,可以利用 webViewDidStartLoad 和 webViewDidFinishLoad 方法实现本功能:        

    1. - (void) webViewDidStartLoad:(UIWebView *)webView  
    2. {  
    3.     //创建UIActivityIndicatorView背底半透明View        
    4.     UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];    
    5.     [view setTag:108];    
    6.     [view setBackgroundColor:[UIColor blackColor]];    
    7.     [view setAlpha:0.5];    
    8.     [self.view addSubview:view];    
    9.       
    10.     activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 32.0f, 32.0f)];    
    11.     [activityIndicator setCenter:view.center];    
    12.     [activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite];    
    13.     [view addSubview:activityIndicator];    
    14.   
    15.     [activityIndicator startAnimating]; 
    16. }
    17. - (void) webViewDidFinishLoad:(UIWebView *)webView  
    18. {  
    19.     [activityIndicator stopAnimating];  
    20.     UIView *view = (UIView*)[self.view viewWithTag:108];  
    21.     [view removeFromSuperview];  
    22.     NSLog(@"webViewDidFinishLoad");  
    23. }  

    三、UIWebView还可以通过 stringByEvaluatingJavaScriptFromString 函数来执行 javascript代码,从而可以更加灵活地处理网页文件

      1. 获得UIWebView的标题
    NSString *theTitle=[webView stringByEvaluatingJavaScriptFromString:@"document.title"];

      2. 获取页面的URL

    NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];

      3. 修改页面元素的值

    NSString *js_result = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('q')[0].value='朱祁林';"];

      4. 表单提交

    NSString *js_result2 = [webView stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit(); "]

      5. 字体颜色:

      [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextFillColor= 'white'"];

       6. 背景颜色:

       [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.backgroundColor = 'black';"];

       7. 文本大小:

    [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '80%'"];

    四、综合运用以上方法,还可以实现部分网页的显示,基本思路如下:

        1. 用 loadRequest 先获取网页,但先设置 UIWebView.hidden = YES;

        2. 在 webViewDidFinishLoad 中,用

    NSString *js_result2 = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementByIdx_x_x_xx_x_x('xxxx').innerHTML; "] 获取指定标签元素的HTML代码
        3. 再使用 loadHTMLString 加载该HTML代码,即可
  • 相关阅读:
    Junit单元测试学习笔记(一)
    perl 函数参数传递与返回值(一)
    Oracle blob字段类型 文件读写实例
    测试沙龙的一些感悟
    常用排序算法选择排序
    perl 哈希(hash)学习笔记(一)
    perl 自定义包/模块的使用(正则表达式匹配email地址和ip)
    常用排序算法冒泡排序
    如何使用excel计算工龄
    畅想(3)打通编程的任督二脉 人工智能
  • 原文地址:https://www.cnblogs.com/jiang-xiao-yan/p/5949441.html
Copyright © 2011-2022 走看看