在 GeckoView 中阻止来自特定域的图像 android
Block images from particular domain in GeckoView android
如何阻止从 GeckoView 中的特定域加载图像?
我尝试在 GeckoView 的 webview 中搜索像 setLoadsImagesAutomatically
这样的等价方法,但没有成功。
我发现很少有像 this and this 这样的链接。
我们可以通过在 GeckoView 中注入 javaScript 来阻止图像加载吗?
您可以使用 installBuiltIn
that uses webRequest.onBeforeRequest
注册系统 WebExtension 以阻止从给定域或任何其他标准加载图像。
示例:
在 /assets/
下为您的扩展程序创建一个文件夹,例如/assets/block-images
并添加 manifest.json
和 background.js
文件,如下所示:
manifest.json
{
"manifest_version": 2,
"name": "block-images",
"version": "1.0",
"description": "Block images from mozilla.org",
"browser_specific_settings": {
"gecko": {
"id": "block-images@example.com"
}
},
"permissions": [
"*://*.mozilla.org/*",
"webRequest",
"webRequestBlocking"
],
"background": {
"scripts": ["background.js"]
}
}
background.js
"use strict";
function listener(details) {
// blocks all images from twitter.com
return {cancel: true};
}
browser.webRequest.onBeforeRequest.addListener(
listener,
{urls: ["*://*.mozilla.org/*"], types: ["image"]},
["blocking"]
);
然后您可以在启动时使用 ensureBuiltIn
:
在某处安装扩展
runtime
.getWebExtensionController()
.ensureBuiltIn(
"resource://android/assets/block-images/",
"block-images@example.com");
之后,您在 GeckoView 中加载的任何页面都会按照 background.js
文件中的定义将图像屏蔽到 mozilla.org
。
如何阻止从 GeckoView 中的特定域加载图像?
我尝试在 GeckoView 的 webview 中搜索像 setLoadsImagesAutomatically
这样的等价方法,但没有成功。
我发现很少有像 this and this 这样的链接。
我们可以通过在 GeckoView 中注入 javaScript 来阻止图像加载吗?
您可以使用 installBuiltIn
that uses webRequest.onBeforeRequest
注册系统 WebExtension 以阻止从给定域或任何其他标准加载图像。
示例:
在 /assets/
下为您的扩展程序创建一个文件夹,例如/assets/block-images
并添加 manifest.json
和 background.js
文件,如下所示:
manifest.json
{
"manifest_version": 2,
"name": "block-images",
"version": "1.0",
"description": "Block images from mozilla.org",
"browser_specific_settings": {
"gecko": {
"id": "block-images@example.com"
}
},
"permissions": [
"*://*.mozilla.org/*",
"webRequest",
"webRequestBlocking"
],
"background": {
"scripts": ["background.js"]
}
}
background.js
"use strict";
function listener(details) {
// blocks all images from twitter.com
return {cancel: true};
}
browser.webRequest.onBeforeRequest.addListener(
listener,
{urls: ["*://*.mozilla.org/*"], types: ["image"]},
["blocking"]
);
然后您可以在启动时使用 ensureBuiltIn
:
runtime
.getWebExtensionController()
.ensureBuiltIn(
"resource://android/assets/block-images/",
"block-images@example.com");
之后,您在 GeckoView 中加载的任何页面都会按照 background.js
文件中的定义将图像屏蔽到 mozilla.org
。