首页 > 解决方案 > 当 iOS 中的单个请求中发生几个重定向时,WKWebview 不会加载

问题描述

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

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

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

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

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

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

我错过了任何会话维护吗?因为两次请求加载并完成?请帮助

标签: ioshttpredirectwkwebviewokta

解决方案


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

所以网址应该是这样的:

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

推荐阅读