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代码,即可
  • 相关阅读:
    elasticsearch 中的Multi Match Query
    activiti 流程部署的各种方式
    elasticsearch 嵌套对象之嵌套类型
    elasticsearch Java High Level REST 相关操作封装
    elasticsearch 字段数据类型
    ubuntu 安装 docker
    elasticsearch 通过HTTP RESTful API 操作数据
    facenet 人脸识别(二)——创建人脸库搭建人脸识别系统
    POJ 3093 Margaritas(Kind of wine) on the River Walk (背包方案统计)
    墨卡托投影, GPS 坐标转像素, GPS 坐标转距离
  • 原文地址:https://www.cnblogs.com/jiang-xiao-yan/p/5949441.html
Copyright © 2011-2022 走看看