正如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