【问题标题】:Is there a way to know in the method webViewDidFinishLoad: which url was loaded?有没有办法在方法 webViewDidFinishLoad: 中知道加载了哪个 url?
【发布时间】:2014-05-08 23:24:30
【问题描述】:

我的问题是我只请求加载一个 url 请求,但是服务器让 web 视图加载了一堆其他的东西。

有一个名为webViewDidFinishLoad: 的委托方法,它作为参数传递完成加载的webview。

问题是:有没有办法知道哪个请求完成加载?

【问题讨论】:

  • webView:shouldStartLoadWithRequest:navigationType: 需要这些其他人吗?
  • 是的,但是它们的加载顺序可能与它们最终加载的顺序不同。
  • 如果一次只完成一个请求,我的上一条评论可能是错误的。

标签: ios uiwebview nsurlrequest


【解决方案1】:

您只有 1 种方法可以了解您的 web 视图中的实际请求:

NSURLRequest *request = webview.request;

你可以监控由方法启动的请求:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;

【讨论】:

  • 假设 webview.request 是最后一个加载的请求,这将是正确的答案。谢谢!你知道一次只能加载1个请求还是可以异步加载多个请求?
  • 希望你只有 1 :) 但我建议阅读 Apple 文档,了解在 webview 加载框架等时调用的方法 shouldStartLoadWithRequest。
  • 那么,正确的做法是将正在加载的请求(从 shouldStartLoadWithRequest: 中检索)存储在一个变量中,因为 webview.request 只是用户完成的请求(正如我已确认:s29.postimg.org/u44zjvrja/…)。请更新答案。
  • 嗯,我的日志似乎还显示一次加载了多个请求,因为有多个“将加载”,然后是多个“结束加载”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-10
  • 1970-01-01
  • 2010-12-24
  • 1970-01-01
  • 2013-07-28
  • 2023-03-03
  • 1970-01-01
相关资源
最近更新 更多