我知道这个问题已经被问过好几次了,但我还没有明确的答案。请用你的想法启发我。
要求:- 应用程序是一个浏览器,其中只允许查看和访问“列入白名单”的 URL。例如,Yahoo.com 在白名单中,但 Youtube 不在。雅虎可能在其网页上嵌入了 Youtube 视频。在这种情况下,我希望我的浏览器根本不显示嵌入式视频,即阻止部分 Web 视图。
调查结果:-
1)有两种方法,一种是shouldOverrideUrlLoading()
我们可以覆盖并决定是否打开链接。其次是 shouldInterceptRequest()
[3.0 above] 我们可以覆盖和更改页面的内容,就像这里给出的一样。但它对于修改网页的个别内容没有用。
onLoadResource()
是为每个加载的资源调用的方法,但我们不能覆盖它来显示自定义内容。如果我们可以更改正在加载的内容的内容,类似于 onLoadResource 的东西将是一个完美的解决方案。(可能的安全问题)
2) 更改 HTML 内容:-这里给出的几种方法是使用 HTTPClient 下载页面内容,然后将其加载到 Webview 中。这里的方法可能是更改 HTML 以用一些“站点被阻止”消息替换被阻止的内容。这里的问题是该方法是否完全证明。javascript在这里会有任何问题吗?
3)使用Javascript修改页面内容。(任何例子?)我见过这个。是否还有更多此类示例可供我参考,例如替换/删除包含黑名单 URL 的标签
4)不可能按照我的要求去做。