正如ios文档所述,应该使用[webView stopLoading]
方法来停止webview加载任务。如何立即停止UIWebView加载
据我所知,这个方法是异步运行的,并且不会立即停止当前的处理加载请求。
但是,我需要一个强制webview立即停止正在进行的任务的方法,因为加载部分会阻塞主线程,这可能会导致动画上的弹出。
那么,有没有办法成功呢?
正如ios文档所述,应该使用[webView stopLoading]
方法来停止webview加载任务。如何立即停止UIWebView加载
据我所知,这个方法是异步运行的,并且不会立即停止当前的处理加载请求。
但是,我需要一个强制webview立即停止正在进行的任务的方法,因为加载部分会阻塞主线程,这可能会导致动画上的弹出。
那么,有没有办法成功呢?
请勿使用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"]];
我已经在使用'[webView loadHTMLString:responseString baseURL:[NSURL URLWithString:@“您的原始URL字符串]]];'加载webview的方法,html页面在本地文件系统上。 – manuyavuz 2012-04-12 08:56:21
您的意思是“本地文件系统”作为iOS设备本地吗?或者你的WiFi网络上有一台电脑(与你的iOS设备一样)来提供你的html内容?你的html做什么?这是一个简单的页面或者动态的Ajax或其他基于Java的框架吗? – FeAt 2012-04-12 09:42:12
Html不是从网络获取的,它已经在本地设备上。 Html包含一个长文本内容,它只是一个静态html。 – manuyavuz 2012-04-12 09:54:26
这为我工作。
if (webText && webText.loading){
[webText stopLoading];
}
webText.delegate=nil;
NSURL *url = [NSURL URLWithString:@""];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webText loadRequest:requestObj];
这可以立即停止,但会显示空白页。 – devios1 2013-11-04 22:14:55
您是否找到解决方案?我也面临同样的问题 – 2016-06-16 20:15:51