【问题标题】:Intercept and modify resource/url requests while calling loadHTMLString of UIWebView在调用 UIWebView 的 loadHTMLString 时拦截和修改资源/url 请求
【发布时间】:2018-07-03 04:34:06
【问题描述】:

我正在使用loadHTMLString 方法在UIWebView 上加载一些HTML 字符串。

[self.myWebView loadHTMLString:html baseURL:baseURL];

HTML 字符串如下所示。

<html>
    <head></head>
    <body>
        <!-- [DocumentBodyStart:9ab3216e-b945-4432-141f-68164c25f0d6] -->
        <div class="jive-rendered-content"> 
            <p class="">Test description</p> 
            <a href="https://a-team-906-test.jivelandia.com/servlet/JiveServlet/previewBody/1091-102-1-1054/IMG_0005.JPG">
                <img src="https://a-team-906-test.jivelandia.com/servlet/JiveServlet/previewBody/1091-102-1-1054/IMG_0005.JPG">
            </a>
        </div>
        <!-- [DocumentBodyEnd:9ab3216e-b945-4432-141f-68164c25f0d6] -->
        <script type="text/javascript" src="web/video-loading-events.js" onerror="alert('cant load video-loading-events.js')"></script>
    </body><br>
</html>

如您所见,HTML 内容中有一个图像 URL。问题是由于身份验证问题,图像无法在 WebView 上加载。

那么我怎样才能拦截该图像 url 请求以查看引擎盖下发生了什么?如果有必要,我如何才能仅添加具有该特定请求的附加标头?

Objective-C 更可取,但也欢迎使用 Swift。提前致谢。

【问题讨论】:

    标签: ios objective-c swift uiwebview webimage


    【解决方案1】:

    一个好的起点是使用 safari web 检查器查看当您在应用中打开 web 视图时哪些错误被注销到控制台。

    您需要从您的 iPhone 启用网络检查器,然后确保您在 safari 中启用了“在菜单栏中显示开发菜单”。

    完成这两项后,您可以在 safari 中导航到 Develop -&gt; &lt;Your device or simulator&gt; -&gt; &lt;your webview&gt;

    从开发者窗口刷新页面,看看什么被注销。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-19
      • 2020-01-11
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      • 1970-01-01
      • 2016-04-19
      相关资源
      最近更新 更多