如何从html代码加载页面

时间:2013-07-28 08:16:59

标签: ios uiwebview afnetworking

这是问题,我使用AFNetwoking获取返回的页面html。 我可以看到responseObject是一个html页面。 这是我使用的代码。

NSURL *url = [NSURL URLWithString:@"https://graph.z.qq.com/moc2/authorize"];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];


NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
[params setValue:@"code" forKey:@"response_type"];
[params setValue:@"100266567" forKey:@"client_id"];
[params setValue:@"http://www.qq.com" forKey:@"redirect_uri"];

NSMutableURLRequest *request = [httpClient requestWithMethod:@"GET" path:@"https://graph.z.qq.com/moc2/authorize" parameters:params];

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[httpClient registerHTTPOperationClass:[AFHTTPRequestOperation class]];

__阻止NSData * data = [[NSData alloc] init];

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject){
    data = responseObject;
    NSLog(@"Response: %@", [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]) ;
} failure:^(AFHTTPRequestOperation *operation, NSError *error){
    NSLog(@"Error: %@", error);
}];

[operation start];

现在我想将responseObject加载到uiwebview中。 我尝试了loadHTMLString,但它没有用。

[webView loadHTMLString:[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] baseURL:url ];

有人对此有任何想法吗?

2 个答案:

答案 0 :(得分:0)

看起来您不会在任何处理程序块中加载数据。

AFNetworking是异步的。因此,如果您在返回任何数据之前尝试加载数据,则不会发生任何事情。

将加载代码放在您记录数据的相同位置。

答案 1 :(得分:0)

尝试重写此方法,然后返回YES:

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    return YES;
}

请记住将您的类设置为UIWebViewDelegate并将您的UIWebView的.delegate属性链接到self