在调用UIWebView的loadHTMLString时拦截和修改资源/ URL请求

时间:2018-07-03 04:34:06

标签: ios objective-c swift uiwebview webimage

我正在使用UIWebView方法在loadHTMLString上加载一些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也很受欢迎。预先感谢。

1 个答案:

答案 0 :(得分:1)

一个不错的起点是使用safari网络检查器查看在您的应用中打开webview时正在向控制台注销哪些错误。

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

完成这两项操作后,您就可以在野生动物园中导航至Develop -> <Your device or simulator> -> <your webview>

从开发人员窗口刷新页面,查看注销的内容。

祝你好运!