iosswiftwkwebviewwkwebviewconfiguration

How to inject javascript file to html string coming from api?


I have a html string which comes from the api. I need to inject a static javascript file present in my code.

Thanks


Solution

  • You can use WKUserScript and append the javascript to webview using the WKWebViewConfiguration.

    let contentController = WKUserContentController()
    guard let scriptPath = Bundle.main.path(forResource: "script", ofType: "js"),
    let scriptSource = try? String(contentsOfFile: scriptPath) else { return }
    let script = WKUserScript(source: scriptSource, injectionTime: .atDocumentEnd, forMainFrameOnly: true)
    contentController.addUserScript(script)
    let config = WKWebViewConfiguration()
    config.userContentController = contentController
    
    let webView = WKWebView(frame: .zero, configuration: config)
    self.view.addSubview(webView)
    
    webView.loadHTMLString(htmlString, baseURL: nil)