ios - 当 iOS 中的单个请求中发生几个重定向时,WKWebview 不会加载
问题描述
在我的 iOS 应用程序中单击按钮后,我正在调用 API 并获取 URL 字符串作为响应。接下来,我使用 loadrequest 在 WKWebView 中加载该 URL。现在
- 初始页面加载并发生进一步的重定向
- 两次 didstartprovisionalnavigation 和 didendprovisionalnavigation 委托方法被调用。
- 两个响应码都是 200
- 最后我看到一个空白页。DidFailProvisionalNavigation 方法中没有条目。
在 webview 中调用 url 后,有一个服务器端处理,通过 OKTA 进行身份验证,我们得到最终响应为网页,例如https://www.compname.com/file。
这会在浏览器 safari 和 chrome 中加载,也可以在 ios 模拟器浏览器中加载,但不会在 wkwebview 中加载。
我已将任意加载键设置为 YES,完成第一个请求后会正确显示一个中间页面。下一个重定向/内部请求会导致空白页面,响应代码为 200 。
编辑:此 URL 在 SFSafariviewController 中也加载得很好
我错过了任何会话维护吗?因为两次请求加载并完成?请帮助
解决方案
在加载 url 请求时,WKWebView
您还需要在 url 中指定方案(http/https)。
所以网址应该是这样的:
let url = URL(string: "http://www.compname.com/file")
推荐阅读
- php - PHP按关联数组中的位置对数组进行排序
- teamcity - TeamCity buildStatus 服务消息未成功
- android - 创建一个Handler函数,随机生成5个坐标
- javascript - 获取不包括具有特定类的元素的元素的索引?
- arrays - 将最多包含 100 个项目 ID(包含重复项)的数组与具有唯一 ID 的数组进行比较
- javascript - 带有图标的 Ruby 复选框现在在切换时显示/隐藏 div
- wordpress - 在 wp-admin 中添加和编辑后如何按 asc 或 desc 显示标签顺序
- reactjs - 测试使用 react-relative-portal 的反应组件
- java - Jsoup 程序类型已存在
- apache-flink - 大状态算子的 Flink 任务调度