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 をダウンロードします。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"]];