我需要清理UIWebView的内容(为了重用它),但我在委托方法中有一些验证处理代码,所以我不想加载一个像about:blank这样的空白页来清理它,因为它将触发我的身份验证处理代码。那么有没有办法做到这一点? (另外,通过重用它,我需要在Web视图顶部放置一个微调器,当它加载另一个页面时,我不希望用户看到以前加载的页面内容,所以这就是为什么我需要清理它)如何在不加载空白页面的情况下清理UIWebView的内容?
谢谢!
我需要清理UIWebView的内容(为了重用它),但我在委托方法中有一些验证处理代码,所以我不想加载一个像about:blank这样的空白页来清理它,因为它将触发我的身份验证处理代码。那么有没有办法做到这一点? (另外,通过重用它,我需要在Web视图顶部放置一个微调器,当它加载另一个页面时,我不希望用户看到以前加载的页面内容,所以这就是为什么我需要清理它)如何在不加载空白页面的情况下清理UIWebView的内容?
谢谢!
你可以用下面这行代码:
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]];
希望这是你想要的。
这并获得成功对我来说:
[webView stringByEvaluatingJavaScriptFromString:@"document.open();document.close()"];
太棒了!这是目前这个主题最好,最快的解决方案。谢谢! –
太棒了!非常快! –
我发现这个解决方案阻止我的主线程长4秒,同时清理一个大的webview。 –
尝试了这一点。这为我工作
[self.webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML = \"\";"];
这正是我需要的。非常感谢。 – Deepak
绝对是最快的方式!谢谢 – dreampowder
如果你唯一的问题是,微调消失,当你加载一个空白页面,您可以在webViewDidFinishLoad使用此代码:
– (void)webViewDidFinishLoad:(UIWebView *)currentWebView {
if (![currentWebView.request.URL.description isEqualToString: @"about:blank"]) {
self.mySpinner.hidden = YES;
}
}
...那么微调会直到你的webview实际完成加载。
是的,我知道这一点,但是我问的是如果你阅读我的问题没有加载“about:blank”的方法。非常感谢! – hzxu
你不能做你想做的事情,你必须这样做没有任何其他方式来做到这一点。 –
我认为这应该被标记为答案。 – neevek