【问题标题】:How to show only section of site in UiWebView?如何在 UiWebView 中仅显示网站的一部分?
【发布时间】:2016-07-02 11:56:47
【问题描述】:

我想在 UiWebView 中显示网站,但我不需要显示所有网站,只需显示从 <section id="xxx"></section> 的 CSS 样式可选 <head>。我尝试下载 html 代码并将其粘贴到 UiWebView

NSString *string = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://example.com/page"] encoding:NSUTF8StringEncoding error:nil];

NSString* content2 = string;
NSString* beforeBody = @"<section id=";
NSString* afterBody = @"</section>";

NSString* finalContent = [[beforeBody stringByAppendingString:content2]
                          stringByAppendingString: afterBody];

[_webView loadHTMLString:finalContent baseURL:nil];

但这对我不起作用。有任何想法吗?谢谢你的帮助!

【问题讨论】:

    标签: html ios objective-c uiwebview


    【解决方案1】:

    您可以执行以下操作:

    在你的viewController中创建2个UIWebViews,webView和webView2,在你的viewController头部实现@interface ViewController : UIViewController &lt;UIWebViewDelegate&gt;

    在 viewDidAppear 中,您将从要使用的页面加载 fullHTMLString 到 webView2 中,然后像这样设置 webView2 的委托:

    -(void)viewDidAppear:(BOOL)animated
    {
        NSString *fullHTMLString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"https://python.org"] encoding:NSASCIIStringEncoding error:nil];
    
        [self.webView2 setHidden:YES];
        [self.webView2 loadHTMLString:fullHTMLString baseURL:nil];
        [self.webView2 setDelegate: self];
    }
    

    您必须实现 webViewDidFinishLoad 委托方法,并在其中调用 [stringByEvaluatingJavaScriptFromString],它将根据您提供的参数检索您想要的单个元素。

    在本例中我选择通过 ElementID 检索,您可以使用 javascript 以其他方式检索它。

    一旦你有你想要的元素来显示,你创建一个 HTML 字符串并将它插入其中,然后你将带有单个元素的完整 html 加载到第一个 webView(webView 而不是 webView2)中,这样做是为了防止无休止的调用委托方法时循环。

    - (void)webViewDidFinishLoad:(UIWebView *)webView 
    {
        NSString *singleElementString = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementById(\"mainnav\").innerHTML;"];
        NSString *html = [[NSString alloc] initWithFormat:@"<html>%@</html>", singleElementString];
        [self.webView loadHTMLString:html baseURL:nil];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-05
      • 2011-06-28
      相关资源
      最近更新 更多