ios – 向WKWebView中的所有传出请求添加请求标头

ios – 向WKWebView中的所有传出请求添加请求标头,第1张

概述TL; DR:我有一个带WKWebView的iOS( Swift)项目.我想在此WKWebView中向所有传出请求(html,图像,脚本,样式表等)添加请求标头.我无法找到如何做到这一点. 背景: 我有一个Swift iOS应用程序,它使用WKWebView来呈现它的html视图.这些视图托管在我们的服务器上,这些服务器分为生产环境和临时环境.我已经使用Akamai设置了登台环境,以便所有传入的请 TL; DR:我有一个带WKWebVIEw的iOS( Swift)项目.我想在此WKWebVIEw中向所有传出请求(HTML,图像,脚本,样式表等)添加请求标头.我无法找到如何做到这一点.

背景:
我有一个Swift iOS应用程序,它使用WKWebVIEw来呈现它的HTML视图.这些视图托管在我们的服务器上,这些服务器分为生产环境和临时环境.我已经使用Akamai设置了登台环境,以便所有传入的请求必须通过请求标头,以便请求被接受.

问题:
目前,我已经创建了一个WKWebVIEw的子类,它覆盖了loadRequest方法,它看起来像这样:

overrIDe func loadRequest(request: NSURLRequest) -> WKNavigation? {    guard let mutableRequest = request.mutablecopy() as? NSMutableURLRequest else {        return super.loadRequest(request)    }    if let url = request.URL,host = url.host {        if (host == "staging.example.com") {            mutableRequest.setValue("secret-value",forhttpheaderFIEld: "secret-header")        }    }    return super.loadRequest(mutableRequest)}

这捕获了初始的HTML请求,它按预期工作.但是,由于该页面在同一服务器上加载了图像,样式表和脚本,因此它们不会通过loadRequest方法而被拒绝,因为它们的请求缺少此必需的请求标头.

要求:
它必须与iOS 8上的WKWebVIEw一起使用.

解决方法 使用当前的API是不可能的 – 没有必要处理WKWebVIEw发出的所有请求.您可以使用UIWebVIEw custom url protocol(WKWebVIEw不支持它)并将标头添加到特定服务器的所有请求中作为替代. 总结

以上是内存溢出为你收集整理的ios – 向WKWebView中的所有传出请求添加请求标头全部内容,希望文章能够帮你解决ios – 向WKWebView中的所有传出请求添加请求标头所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1050002.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存