2

viewDidLoad、私は使用NSURLRequestしていNSURLConnectionます:

NSURLRequest *site_request = 
    [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/"] 
                     cachePolicy:NSURLRequestUseProtocolCachePolicy 
                 timeoutInterval:10.0];

NSURLConnection *site_connection = 
    [[NSURLConnection alloc] initWithRequest:site_request delegate:self];

そして私は使用します

-(void)connection:(NSURLConnection *)site_connection didReceiveData:(NSData *)data 
{    
    site_response = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}

そして私はHTML全体を持っていますsite_response

JavaScriptを使用して次のようなコンテンツを取得するために、UIWebViewからページを「開く」インビジブルを作成したいと思います。NSURLRequest

NSString *myText = [my_webView stringByEvaluatingJavaScriptFromString:
                       @"document.documentElement......"];

私の.hには次のようなものがあります。

UIWebView *my_webview;
@property (nonatomic, retain) UIWebView *my_webview;

そして私の.mで私は持っています:

@synthesize torrents_webview;

私のviewDidLoadNSURLRequest

[my_webview loadRequest:site_request];

と私は使用します

-(void)webViewDidFinishLoad:(UIWebView *)webView 
{
    //an alertview here
}

それが機能することを確認するために。しかし、何も起こりません。アラートビューは表示されません。

私は何が間違っているのですか?

4

2 に答える 2

0

webViewDidFinishLoad:UIWebViewデリゲートのメソッドです。表示したコードのどこにもデリゲートを設定していません。

@interface YourClass : UIViewController <UIWebViewDelegate>

...

- (void)loadView
{
    self.webView.delegate = self;
}


...
- (void)dealloc
{
    self.webView.delegate = nil;
}

また、NSURLRequestを使用すると、ページが再度取得されます。ただし、NSURLConnectionを使用する必要はありません。NSURLRequestを使用してUIWebVIewをロードするだけです。

または、NSURLConnectionを使用する必要がある場合は、ファイルがダウンロードされたら、それをディスクに保存し、LoadHTMLStringを使用してコンテンツをロードします。

于 2012-06-07T02:10:35.103 に答える
0

ViewController.h

@interface TopTorrents_ViewController : UIViewController <UITableViewDelegate, UITableViewDataSource,UIWebViewDelegate>
{
    UIWebView *torrents_webview;
}

@property (nonatomic, retain) UIWebView *torrents_webview;

ViewController.m

    @synthesize torrents_webview;

- (void)viewDidLoad
{       
    torrents_webview.delegate = self;

    NSURLRequest *site_request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.gr/"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10.0];

    [torrents_webview loadRequest:site_request];  

    [super viewDidLoad];
}

    -(void)webViewDidFinishLoad:(UIWebView *)webView 
    {
        NSString *myText = [torrents_webview stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0]"];

    UIAlertView *my_alert = [[UIAlertView alloc] initWithTitle:@"mytitle" message:myText delegate:nil cancelButtonTitle:@"my button" otherButtonTitles:nil,nil];

    [my_alert show];

}

これは私の更新されたコードです...ありがとう

于 2012-06-08T01:34:16.923 に答える