正如 ios 文档所说,[webView stopLoading]
应该使用方法来停止 webview 加载任务。
据我所知,这些方法是异步运行的,并且不会立即停止当前处理加载请求。
但是,我需要一种方法来强制 webview 立即停止正在进行的任务,因为加载部分会阻塞主线程,这可能会导致动画轻弹。
那么,有没有办法成功呢?
正如 ios 文档所说,[webView stopLoading]
应该使用方法来停止 webview 加载任务。
据我所知,这些方法是异步运行的,并且不会立即停止当前处理加载请求。
但是,我需要一种方法来强制 webview 立即停止正在进行的任务,因为加载部分会阻塞主线程,这可能会导致动画轻弹。
那么,有没有办法成功呢?
这对我有用。
if (webText && webText.loading){
[webText stopLoading];
}
webText.delegate=nil;
NSURL *url = [NSURL URLWithString:@""];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webText loadRequest:requestObj];
不要使用 UIWebView 直接下载您的 html 文档。使用ASIHTTPRequest 之类的异步下载机制让后台线程下载您的 html。当您获得requestFinished
html 的内容时,将其提供给 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"]];