uiwebview 修改html,从UIWebView读取HTML内容

第二个问题实际上更容易回答。看stringWithContentsOfURL:encoding:error:方法的NSString-它允许您传递一个URL作为NSURL的一个实例(可以很容易地从NSString实例化),并返回一个字符串与页面的完整内容在该URL。例如:NSString *googleString = @"http://www.google.com";NSURL *googleURL = [NSURL URLWithString:googleString];NSError *error;

NSString *googlePage = [NSString stringWithContentsOfURL:googleURL

encoding:NSASCIIStringEncoding

error:&error];

在运行这段代码之后,googlePage将包含www.google.com的HTML,以及error将包含在获取过程中遇到的任何错误。(你应该检查error)

另一种方式(从UIWebView)是有点棘手,但基本上是相同的概念。你得把请求从视图中,然后像前面一样进行提取:NSURL *requestURL = [[yourWebView request] URL];NSError *error;NSString *page = [NSString stringWithContentsOfURL:requestURL

encoding:NSASCIIStringEncoding

error:&error];

编辑:但是,这两种方法都会影响性能,因为它们会执行两次请求。您可以通过从当前加载的UIWebView中获取内容来解决这一问题,方法是使用它的stringByEvaluatingJavascriptFromString:方法,因此:NSString *html = [yourWebView stringByEvaluatingJavaScriptFromString:

@"document.body.innerHTML"];

这将使用DocumentObjectModel获取视图的当前HTML内容,解析JavaScript,然后将其作为HTML的NSString*提供给您。

另一种方法是先以编程方式完成请求,然后从所请求的内容加载UIWebView。假设您以上面的第二个例子为例,您有NSString *page作为呼叫的结果stringWithContentsOfURL:encoding:error:..然后,您可以使用以下方法将该字符串推入web视图中。loadHTMLString:baseURL:,假设您还保留了所请求的NSURL:[yourWebView loadHTMLString:page baseURL:requestURL];

但是,我不确定是否会运行在加载的页面中找到的JavaScript(方法名,loadHTMLString,有些模棱两可,而文档对此并没有太多的说明)。

欲了解更多信息:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值