我对整个编程业务都很陌生,并且想知道是否有任何方法可以清除iphone编程中UIWebView
的内容,以便下一个视图的加载符号不会显示在最后一个视图的前面。
非常感谢,
托马斯
答案 0 :(得分:142)
尝试将网址设置为about:blank
并重新加载页面。
答案 1 :(得分:25)
只需将空的html字符串加载到其中
[self.webView loadHTMLString:@"" baseURL:nil];
答案 2 :(得分:9)
为文档目的回答扩展,以帮助其他人:
我有同样的愿望(在加载下一个url之前清楚的内容)但是设置了一个UIWebView委托来接收webviewDidFinishLoad:(UIWebView)webview
消息并更新响应的另一部分UI。
问题:清除的内容的调用也调用了委托方法,因此获取了错误命中(也就是说,在完成清除时也会调用,但是委托被编码为只能调用当加载真实内容时。)
解决方案:使用已知网址进行清除,并在该网址完成时忽略调用{/ 1}}:
webviewDidFinishLoad:
注意:使用此:
- (void) startLoadOfNextURL:(NSURL*)url
{
// clear:
[self.webView loadHTMLString:@"" baseURL:nil];
// Load real next URL
NSURLRequest* request = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:request];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"WebView finished loading: %@", webView);
if ([self.webView.request.URL.absoluteString isEqualToString:@"about:blank"]) {
NSLog(@" This is Blank. Ignoring as false event.");
}
else {
NSLog(@" This is a real url");
[self updateUIInSomeWay];
}
}
实际上会导致单词“about:blank”在webview的内容窗格中显示为文本!
最终的复杂化:在实践中,我的两个 [self.webView loadHTMLString:@"about:blank" baseURL:nil];
调用如此接近,我发现没有“加载”事件而是清除,webview实际上是取消它而支持第二个请求和为第一个加载请求调用[webview load...]
。因此,我必须在该事件中加入类似的代码:
webView: didFailLoadWithError:
答案 3 :(得分:5)
Swift,Xcode 7 beta 5
webView.loadRequest(NSURLRequest(URL: NSURL(string: "about:blank")!))
答案 4 :(得分:3)
Swift 4.0,XCODE 9
webView.loadRequest(URLRequest.init(url: URL.init(string: "about:blank")!))
答案 5 :(得分:0)
Swift 4.2,xCode 10
中的相同答案if let clearURL = URL(string: "about:blank") {
myWebView.loadRequest(URLRequest(url: clearURL))
}