我在我的iOS应用程序中使用WKWebView来显示HTML字符串 . 现在我需要让我的应用程序捕获HTML页面中被点击的单词 . 我在HTML中嵌入了一段jQuery代码来捕获单词,然后将页面重定向到包含该单词的虚假URL . 在WKWebView的WKNavigationDelegate方法“decisionPolicyFor”中,我解析请求的URL以检索单词 . 一切都运作良好,除了这个词本身已经消失 . 我在Safari上尝试了相同的HTML页面,重定向URL完全正确,我可以在URL地址中确认 . 我不知道jQuery代码和WKWebView之间有什么问题 . 任何建议都将非常感激 .

我的HTML字符串:

<!DOCTYPE html>
<html>
    <header>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
        <script>
            $(document).ready(function() {

                              var p = $('p');

                              p.click(function(e) {
                                      var sel_obj = window.getSelection(); //it will return an object
                                      sel_obj.modify("move","forward","character");
                                      sel_obj.modify("extend","backward","word");

                                      sel_obj.modify("move","backward","character");
                                      sel_obj.modify("extend","forward","word");

                                      var text = sel_obj.toString().trim();
                                      text = text.toLowerCase();
                                      window.location = "https://www.anonexistent.com/wordclicked/" + text;
                                      });

                              });
            </script>
    </header>

    <body>
        <h1>CLICK-TO-PICK-THE-WORD</h1>
        

<p><font size=20>Baa Baa Black Sheep<font></p> </body> </html>

我的iOS代码(在Swift中):

func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {

    let redirectURLString = navigationAction.request.url?.absoluteString ?? ""
    print("redirectURLString: \(redirectURLString)")

    if redirectURLString == "about:blank" {
        decisionHandler(WKNavigationActionPolicy.allow)
    }
    else {
        decisionHandler(WKNavigationActionPolicy.cancel)
    }
}

现在页面显示正确 . 当我在段落中点击“Sheep”这个词时,jQuery可以识别该单词并将重定向URL构造为

https://www.anonexistent.com/wordclicked/sheep

我在Safari上验证过 . 问题是在Xcode中,navigationAction.request.url?.absoluteString只是

https://www.anonexistent.com/wordclicked/

并且缺少“绵羊”这个词 .