javascript - WKWebView 在加载任何 URL 时阻止某些脚本(阻止任何网站中的跟踪或广告)

标签 javascript ios swift blocking wkwebview

我正在开发一个 iOS (swift) 安全浏览器 项目。我需要实现一项功能,我们可以向用户显示当前 WKWebView 中正在运行的跟踪脚本数量以及停止这些跟踪脚本的能力。 (就像 Ghostery 隐私浏览器)

我能够跟踪和列出网页中嵌入的脚本(我在扫描已加载到代理中的内容后执行此操作,调用了 didfinishload)。但我不确定如何阻止它们。

为了获取网页中的所有脚本,我正在读取 innerHTML 中的所有脚本标签。

请帮助我停止在 WKWebView 中执行某些脚本。

提前致谢

最佳答案

我不认为读取所有脚本标签是检测网页加载脚本的方法,因为它很容易出错。

对于您的任务,您最好使用旧的 UIWebView 并实现自定义 NSURLProtocol 来进行阻止/过滤。拦截 WKWebView 发出的所有请求是不可能的(因为它是在进程外加载的,并且您获得的回调与 Apple 在 WKNavigationDelegate 中实现的回调一样多)。相反,您可以通过简单的自定义 NSURLProtocol 实现来控制 UIWebView 加载的所有内容。

关于javascript - WKWebView 在加载任何 URL 时阻止某些脚本(阻止任何网站中的跟踪或广告),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41543638/

相关文章:

ios - 有没有办法将我的 `scrollView` 从我的主类连接或访问到另一个类?

swift - 在 Swift Xcode 中设置碰撞

ios - 更改 ViewController Swift 的背景颜色? (单 View 应用程序)

javascript - 删除 opencart 商店中的渲染 Javascript 和 CSS

ios - 相机在 IOS 中不工作

ios - SwiftUI 中的导航内容

android - 两部智能手机之间的TCP session ?

javascript - 使用 iframe.style.width 设置 iframe 宽度不起作用

javascript - NodeJS gRPC : "Method handler expected but not provided"

javascript - 循环json返回未定义