将 Javascript 添加到 WKWebView

Rah*_*asi 5 ios swift wkwebview

嗨,我知道这似乎是一个超级简单的问题,但我想将此 JS 添加到我的 WebView:

<script type='text/javascript' src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=default&#038;ver=1.3.8'></script>
Run Code Online (Sandbox Code Playgroud)

现在显然我知道这是 HTML,但我不确定为了使用 JS 源代码应该在“evaluateJavaScript”中放入什么。对不起,如果这不是很清楚 - 我是 Swift 和 JS 的新手。谢谢!

我的快速代码:

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    self.webView.evaluateJavaScript("<script type='text/javascript' src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=default&#038;ver=1.3.8'></script>") { (nil, error) in
        print(error)
    }
}
Run Code Online (Sandbox Code Playgroud)

Ban*_*ngs 12

使用内置 APIWKUserScript注入 JS:

let script =    """
                var script = document.createElement('script');
                script.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=default&#038;ver=1.3.8';
                script.type = 'text/javascript';
                document.getElementsByTagName('head')[0].appendChild(script);
                """
let userScript = WKUserScript(source: script, injectionTime: .atDocumentStart, forMainFrameOnly: true)

let contentController = WKUserContentController()
contentController.addUserScript(userScript)

let webViewConfiguration = WKWebViewConfiguration()
webViewConfiguration.userContentController = contentController

let webView = WKWebView(frame: CGRect.zero, configuration: webViewConfiguration)
Run Code Online (Sandbox Code Playgroud)

forMainFrameOnly:一个布尔值,指示脚本应该只注入主框架还是所有框架(包括 iframe)。

  • 虽然配置属性是只读的,但附加的“WKWebViewConfiguration”是可变的。示例:`[self.webView.configuration.userContentController addUserScript:userScript];` (6认同)