如何检查UIWebView是否为空

Ana*_*and 8 uiwebview ios uiwebviewdelegate

我需要检查完成加载时的webview是否有任何内容.

我需要的是简单的.它是我页面底部的一个小网页视图(如广告)

我打电话

NSURLRequest *request=[NSURLRequest requestWithURL:adURL];
[gWebView loadRequest:request];
Run Code Online (Sandbox Code Playgroud)

我得到了回调

-(void)webViewDidFinishLoad:(UIWebView *)webView {
Run Code Online (Sandbox Code Playgroud)

但在我的场景中,webview将返回空,有时它将有数据.

如果我的服务器php文件没有返回任何内容,我不想显示webview.

如何验证我在回调(或任何其他方式)中收到空页?

Jan*_*ano 14

如果您要加载HTML页面:

NSString *string = [myWebView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].innerHTML"];
BOOL isEmpty = string==nil || [string length]==0;
Run Code Online (Sandbox Code Playgroud)

或者您可以先加载内容,测试它是否为空,然后将其提供给webview.见UIWebView's loadHTMLString:baseURL:loadData:MIMEType:textEncodingName:baseURL:.

  • 对不起"一年后的评论",但这可能会有所帮助.只需将('html')改为('body')它就应该运行良好. (5认同)

Bla*_*ago 6

这是基于Jano的方法,但应该表现更好:

NSString *script = @"document.getElementsByTagName('body')[0].innerHTML.length";
NSString *length = [self.webView stringByEvaluatingJavaScriptFromString:script];

if (length.integerValue > 0) {
    NSLog(@"not empty");
}
Run Code Online (Sandbox Code Playgroud)