【问题标题】:Objective-c get data from webview request before it loads pageObjective-c 在加载页面之前从 webview 请求中获取数据
【发布时间】:2026-01-23 12:45:01
【问题描述】:

我正在寻找在加载之前从 UIwebview 请求获取数据的解决方案,或者任何其他仅获取内容的方法,并且在加载完成后不要运行 javascript。我需要得到响应,并停止加载 webview。我无法使用 nsurl 请求。谢谢

【问题讨论】:

  • 为什么不能使用NSURLRequest?这似乎是这里显而易见的解决方案。
  • 这个请求必须在webview中执行,需要用户认证,很多值很难重现。我只需要在响应上的javascript执行之前从成功的请求中获取响应。即使我无法在将数据加载到webview之前获取数据,我认为必须有一些棘手的方法来解决这个问题,但我没有想出任何成功的方法还没有想法

标签: ios objective-c webview uiwebview


【解决方案1】:

据我记得,您无法从 UIWebView 获得响应。唯一的选择是使用-webView:shouldStartLoadWithRequest:navigationType: 阻止加载特定请求并手动下载(我知道,您不想这样做,但恐怕这是我所知道的唯一选择)。

关于请求认证,可以在-webView:shouldStartLoadWithRequest:navigationType:中询问用户是否要执行请求。

【讨论】:

  • 来自 shouldStartLoadWithRequest 的 NSURLRequest 完全配置了用户代理、cookie 和所有标头值?
  • @Daniel,不幸的是,我不记得了。我有一个类似的任务,但那是大约两年前的事了。
  • @Daniel,请注意,从 iOS 7 开始,推荐的手动执行请求的方法是使用 NSURLSession 而不是 NSURLRequest
  • @FreeNickname 什么工作?丹尼尔的评论还是答案?