ios - ios WKWebView拦截http/https请求
问题描述
我的 android 版本的应用程序使用 WebView 并依赖shouldInterceptRequest
方法来提供在运行时下载并由http/https
WebView 请求的 svg 资源。最好在应用程序的 ios 版本上迁移此类行为。但是,它似乎WKWebView
没有提供拦截http/https
请求的工具。鉴于必须使用WKWebView
,可以采用哪些策略来实现在 ios 上的类似行为?
解决方案
终于我用完了。GCDWeb服务器
我已经像这样设置了本地网络服务器:
let webServer: GCDWebServer = GCDWebServer()
webServer.addGETHandler(forBasePath: "/", directoryPath: baseResourcePath, indexFilename: "index.html", cacheAge: 0, allowRangeRequests: true)
然后要提供位于 index.html 包含目录之外的文件,必须附加自定义获取处理程序:
webServer.addHandler(forMethod: "GET", pathRegex: "images", request: GCDWebServerRequest.self) { request in
let fileName = request.path.components(separatedBy: "/images/")[1]
var documentsURL = FileManager.default.urls(for: .docmentDirectory, in: .userDomainMask)[0]
documentsURL.appendPathComponent("images/\(fileName)")
let response = GCDWebServerFileResponse(file: documentsURL.path)
return response
}
推荐阅读
- google-cloud-platform - 是否可以通过 project_id 或 subscription_id 以外的标签过滤 Google PubSub 的 pubsub_subscription?
- bash - 如何使用 Windows cmd 行中的 vboxmanage cli 将参数传递给 shell/bash 脚本?
- postgresql - 我如何验证重叠的日期
- ios - 在 MapKit 中点击我的位置时执行操作
- matlab - 如何从静态方法访问属性
- python - 如何使用 django 将获取的推文(tweepy.StreamListener)传递到 html 页面
- c - 当我在 VScode 上运行此代码时,它显示“test.c 已停止工作”。我试图练习合并排序
- excel - 拆分 CSV 文件,根据内容命名,另存为 HTML
- java - 由于 Firebase DatabaseException,应用程序不断崩溃
- python - 替换字符串在机器人框架中不起作用