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

时间:2017-01-09 08:16:53

标签: javascript ios swift blocking wkwebview

我正在进行iOS (swift) Secure Browser项目。我需要实现一个功能,我们可以向用户显示当前WKWebView中运行的跟踪脚本数量以及停止跟踪脚本的能力。 (就像Ghostery Privacy Browser

我能够跟踪和列出网页中嵌入的脚本(我在扫描已经加载到委托中的内容后执行此操作didfinishload被调用)。但我不知道如何阻止它们。

要获取网页中的所有脚本,请阅读innerHTML中的所有脚本标记。

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

提前谢谢

1 个答案:

答案 0 :(得分:0)

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

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