Sian 发表于 2014-9-2 15:46:06

iOS WebView的用法

一、UIWebView 可以加载和显示某个URL的网页,也可以显示基于HTML的本地网页或部分网页:
a. 加载 URL
WebView = [ initWithFrame:CGRectMake(0, 44, 320, 400)];   
NSString *path = @"http://www.baidu.com";   
NSURL *url = ;   
];   
b. 加载 HTML
NSBundle *bundle = ;
NSString *resPath = ;
NSString *filePath = ;

baseURL:]];
二、使用网页加载指示,加载完成后再显示网页出来
    首先要指定委托方法:
       webView.delegate =self;
    UIWebView主要有下面几个委托方法:
      1、- (void)webViewDidStartLoad:(UIWebView *)webView;开始加载的时候执行该方法。
      2、- (void)webViewDidFinishLoad:(UIWebView *)webView;加载完成的时候执行该方法。
      3、- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;加载出错的时候执行该方法。
   这样,可以利用 webViewDidStartLoad 和 webViewDidFinishLoad 方法实现本功能:      
- (void) webViewDidStartLoad:(UIWebView *)webView
{
    //创建UIActivityIndicatorView背底半透明View      
    UIView *view = [ initWithFrame:CGRectMake(0, 0, 320, 480)];   
    ;   
    ];   
    ;   
    ;   
      
    activityIndicator = [ initWithFrame:CGRectMake(0.0f, 0.0f, 32.0f, 32.0f)];   
    ;   
    ;   
    ;   

    ;
}
- (void) webViewDidFinishLoad:(UIWebView *)webView
{
    ;
    UIView *view = (UIView*);
    ;
    NSLog(@"webViewDidFinishLoad");
}
三、UIWebView还可以通过 stringByEvaluatingJavaScriptFromString 函数来执行 javascript代码,从而可以更加灵活地处理网页文件
1. 获得UIWebView的标题
NSString *theTitle=;
2. 获取页面的URL
NSString *currentURL = ;
3. 修改页面元素的值
NSString *js_result = .value='朱祁林';"];
4. 表单提交
NSString *js_result2 = .submit(); "]

四、综合运用以上方法,还可以实现部分网页的显示,基本思路如下:
    1. 用 loadRequest 先获取网页,但先设置 UIWebView.hidden = YES;
    2. 在 webViewDidFinishLoad 中,用
NSString *js_result2 = 获取指定标签元素的HTML代码
    3. 再使用 loadHTMLString 加载该HTML代码,即可

Sian 发表于 2014-9-2 22:43:23

补充说明

strlen 发表于 2014-9-3 12:12:04

多谢指教, 我还正打算做一个要用到这个东西的app来着

Sian 发表于 2014-9-4 07:03:11

strlen 发表于 2014-9-3 12:12
多谢指教, 我还正打算做一个要用到这个东西的app来着

相互学习
页: [1]
查看完整版本: iOS WebView的用法