首页 > 解决方案 > ios WKWebView拦截http/https请求

问题描述

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

标签: iosswiftwkwebview

解决方案


终于我用完了。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
    }

推荐阅读