2010-11-26 9 views

答えて

0

Webビューで現在のURLの内容を取得する必要がある場合は、UIViewControllerでこれを行うことができます。私はこのコードをコンパイルしなかったので、いくつかの構文エラーがあるかもしれませんが、これはあなたの問題の確かな出発点になるはずです。

@interface aViewController : UIViewController <UIWebViewDelegate> 
    UIWebView *webView; 
    NSString *htmlSource; 
@end 
@implementation aViewController 

-(void) viewDidLoad { 
    CGRect webFrame = [[UIScreen mainScreen] applicationFrame]; 

    self.webView = [[UIWebView alloc] initWithFrame:webFrame]; 
    self.webView.delegate = self; 

    NSURL *aURL = [NSURL URLWithString:@"http://www.myurl.com"]; 
    NSURLRequest *aRequest = [NSURLRequest requestWithURL:aURL]; 
    //load the index.html file into the web view. 
    [self.webView loadRequest:aRequest]; 
}  
//This is a delegate method that is sent after a web view finishes loading content. 
- (void)webViewDidFinishLoad:(UIWebView *)webView{ 
    NSLog(@"finished loading"); 
    self.htmlSource = [[NSString alloc] initWithData:[[webView request] HTTPBody] encoding:NSASCIIStringEncoding]; 
} 

@end 
+0

同じURLへの2回のリクエストにより、エラー応答の可能性が倍増し、応答が一貫しない可能性が増し、ラジオの使用が増加します。キャッシングはこれらの問題を緩和するかもしれませんが、データをすでに持っているときにそれに依存するのはなぜですか? –

+0

同じURLへの2回のリクエストで何を参照していますか? – Travis

+0

ああ、私はあなたが意味するものを参照してください。 UIWebViewのNSURLRequestのHTTPBodyに基づいてソースを取得するように更新しました。 – Travis

1

JavaScriptはstringByEvaluatingJavaScriptFromString:を使用して返すことができるWebビューから何かを得ることができます。

document.lastChild.outerHTML 

文書にはおそらく2つの子ノードがあります。最初はDOCTYPE、2番目は<html>要素です。

関連する問題