How to clean the content of UIWebView without load

2020-05-19 05:49发布

I need to clean the content of UIWebView(in order to reuse it), but I have some authentication handling code in its delegate methods, so I do not want to load an empty page like about:blank to clean it, as it will trigger my authentication handling code. So is there a way for doing this? (also, by reusing it, I need to put a spinner on top of the web view, and when it loads another page, I don't want the user see the previous loaded page content, so that's why I need to clean it)

Thanks!

4条回答
家丑人穷心不美
2楼-- · 2020-05-19 06:20

If your only problem is that the spinner disappears when you load a blank page, you can use this code in webViewDidFinishLoad:

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

...then the spinner will go on until your webview is actually done loading.

查看更多
何必那么认真
3楼-- · 2020-05-19 06:23

this did the trick for me:

 [webView stringByEvaluatingJavaScriptFromString:@"document.open();document.close()"];
查看更多
老娘就宠你
4楼-- · 2020-05-19 06:31

Try this out. This worked for me

[self.webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML = \"\";"];
查看更多
Bombasti
5楼-- · 2020-05-19 06:35

You can just use this line of code :

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

Here you will find whole demo

查看更多
登录 后发表回答