gpt4 book ai didi

swift - 如何在 WKWebView 完成加载之前运行函数?

转载 作者:行者123 更新时间:2023-11-28 13:55:07 25 4
gpt4 key购买 nike

我正在创建一个 Swift iOS 项目,该项目具有多个显示外部网站的 WKWebView。其中一些网站我没有管理访问权限,因此我使用一些代码来隐藏 div 类。这工作正常,但该元素在页面加载后隐藏,因此 div 元素会显示给用户几秒钟。见下文:

 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print("finished")
let elementID = "some_element"
let removeElementIdScript = "var element = document.getElementById('\(elementID)'); element.parentElement.removeChild(element);"
webView.evaluateJavaScript(removeElementIdScript) { (response, error) in
debugPrint("removed")
}
}

有没有办法在 View 加载之前实现这段代码?或者,如果那不可能,我如何放置 mask 或隐藏 View 直到它加载。我想不惜一切代价避免显示 div 元素。

我已经尝试将代码放入 didStartProvisionalNavigation 函数中,但我假设因为它在 View 加载之前运行,所以该元素不存在于 View 中以将其删除。

最佳答案

查看 WKUserScript,配置为 WKUserContentController 的一部分(在 WKWebViewConfiguration 中定义)。这可能已经足够好了,但您可以通过实现内容拦截器来进一步插入它。请参阅 WKContentRuleStore 以在您的应用程序内部进行这些设置,特别是 Safari Content-Blocking Rules Reference有关语法的详细信息。

关于swift - 如何在 WKWebView 完成加载之前运行函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53982053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com