Я использую WKWebView в своем приложении для iOS для отображения строки HTML.Теперь мне нужно, чтобы мое приложение зафиксировало слово, которое прослушивается на странице HTML.У меня есть фрагмент кода JQuery, встроенный в HTML, чтобы захватить слово, а затем перенаправить страницу на фальшивый URL, включая это слово.А в методе WKWebView WKNavigationDelegate "managePolicyFor" я анализирую запрошенный URL-адрес для получения слова.Все работает хорошо, за исключением того, что само слово исчезло.Я попробовал ту же HTML-страницу в Safari, и 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>
<br/>
<br/>
<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)
}
}
Теперь страница отображается правильно.И когда я нажимаю слово «Овцы» в этом абзаце, jQuery может распознать слово и создать URL перенаправления как
https://www.anonexistent.com/wordclicked/sheep
, который я подтвердил в Safari.Проблема заключается в том, что в Xcode, navigationAction.request.url? .AbsoluteString имеет значение только
https://www.anonexistent.com/wordclicked/
, а слово «овца» отсутствует.