20

我需要清理 UIWebView 的内容(为了重用它),但我在它的委托方法中有一些身份验证处理代码,所以我不想加载一个空页面,比如 about:blank 来清理它,因为它会触发我的身份验证处理代码。那么有没有办法做到这一点?(另外,通过重用它,我需要在 web 视图顶部放置一个微调器,当它加载另一个页面时,我不希望用户看到之前加载的页面内容,所以这就是我需要清理它的原因)

谢谢!

4

4 回答 4

69

您可以只使用这行代码:

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]];

在这里你会找到整个演示

于 2012-06-06T06:58:17.507 回答
25

这对我有用:

 [webView stringByEvaluatingJavaScriptFromString:@"document.open();document.close()"];
于 2012-06-19T16:59:58.727 回答
8

试试这个。这对我有用

[self.webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML = \"\";"];
于 2013-03-26T19:04:32.487 回答
0

如果您唯一的问题是加载空白页面时微调器消失了,您可以在 webViewDidFinishLoad 中使用此代码:

– (void)webViewDidFinishLoad:(UIWebView *)currentWebView {
    if (![currentWebView.request.URL.description isEqualToString: @"about:blank"]) {
        self.mySpinner.hidden = YES;
    }
}

...然后微调器将继续运行,直到您的 webview 实际完成加载。

于 2014-07-13T10:59:46.860 回答