4

正如 ios 文档所说,[webView stopLoading]应该使用方法来停止 webview 加载任务。

据我所知,这些方法是异步运行的,并且不会立即停止当前处理加载请求。

但是,我需要一种方法来强制 webview 立即停止正在进行的任务,因为加载部分会阻塞主线程,这可能会导致动画轻弹。

那么,有没有办法成功呢?

4

2 回答 2

2

这对我有用。

if (webText && webText.loading){
    [webText stopLoading];
}

webText.delegate=nil;


NSURL *url = [NSURL URLWithString:@""];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webText loadRequest:requestObj];
于 2013-03-29T07:25:12.757 回答
0

不要使用 UIWebView 直接下载您的 html 文档。使用ASIHTTPRequest 之类的异步下载机制让后台线程下载您的 html。当您获得requestFinishedhtml 的内容时,将其提供给 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你的 UIWebViewloadHTMLString方法的参数:

UIWebView *webView = [[UIWebView alloc] init];
[webView loadHTMLString:responseString baseURL:[NSURL URLWithString:@"Your original URL string"]];
于 2012-04-12T08:32:52.300 回答