当 iOS 中的单个请求中发生几个重定向时,WKWebview 不会加载

问题描述

在我的 iOS 应用程序中,单击按钮后,我正在调用 API 并获取 URL 字符串作为响应。接下来,我使用 loadrequest 在 WKWebView 中加载该 URL。现在

  1. 初始页面加载并发生进一步重定向
  2. 调用了两次 didstartprovisionalnavigation 和 didendprovisonalnavigation 委托方法
  3. 两个响应代码都是 200
  4. 最后我看到了一个空白页。 DidFailProvisionalNavigation 方法中没有条目。

在webview中调用url后,有一个服务器端处理,通过OKTA进行身份验证,我们得到最终响应的网页,例如,https://www.compname.com/file

这会在浏览器 safari 中加载,chrome 也在 ios 模拟器浏览器中加载,但不会在 wkwebview 中加载。

我已将 Arbitary loading 键设置为 YES ,有一个在完成第一个请求后正确显示的中间页面。下一个重定向/内部请求导致空白页面,响应代码为 200 。

编辑:此 URL 在 SFSafariviewController 中也能很好地加载

我是否缺少任何会话维护?因为两次请求加载和完成?请帮忙

解决方法

WKWebView 中加载 url 请求时,您还需要在 url 中指定方案 (http/https)。

所以网址应该是这样的:

let url = URL(string: "http://www.compname.com/file")