iOS WKWebView拦截HTTP / https请求

时间:2019-11-30 20:31:39

标签: ios swift wkwebview

我的Android版本的应用程序使用WebView,并依靠shouldInterceptRequest方法来提供svg资源,这些资源在运行时下载并由http/https从WebView请求。 希望在应用程序的ios版本上迁移此类行为。但是,似乎WKWebView没有提供用于拦截http/https请求的工具。鉴于必须使用WKWebView,可以采用哪些策略在ios上实现类似的行为?

1 个答案:

答案 0 :(得分:0)

最终我最终使用了。 GCDWebServer

我已经这样设置本地网络服务器:

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
    }