正如ios文档所说,应该使用[webView stopLoading]
方法来停止webview加载任务。
据我所知,这些方法是异步运行的,并且不会立即停止当前正在处理的加载请求。
但是,我需要一种方法来强制webview立即停止正在进行的任务,因为加载部分会阻塞主线程,这可能会导致动画的轻弹。
那么,有没有办法成功呢?
答案 0 :(得分:2)
这对我有用。
if (webText && webText.loading){
[webText stopLoading];
}
webText.delegate=nil;
NSURL *url = [NSURL URLWithString:@""];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webText loadRequest:requestObj];
答案 1 :(得分:0)
请勿使用UIWebView直接下载html文档。
使用像ASIHTTPRequest这样的异步下载机制来获取后台线程下载的html。
当您获得带有html内容的requestFinished
时,请将其提供给UIWebView。
来自ASIHTTPRequest页面的示例如何创建异步请求:
- (IBAction)grabURLInBackground:(id)sender
{
NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
// Use when fetching text data
NSString *responseString = [request responseString];
// Use when fetching binary data
NSData *responseData = [request responseData];
}
- (void)requestFailed:(ASIHTTPRequest *)request
{
NSError *error = [request error];
}
将responseString
用于UIWebView的loadHTMLString
方法参数:
UIWebView *webView = [[UIWebView alloc] init];
[webView loadHTMLString:responseString baseURL:[NSURL URLWithString:@"Your original URL string"]];