代码之家  ›  专栏  ›  技术社区  ›  Divyang Panchal

在GeckoView android中阻止特定域的图像

  •  0
  • Divyang Panchal  · 技术社区  · 4 年前

    如何阻止从中的特定域加载图像 GeckoView ? 我试着像这样搜索等距方法 setLoadsImagesAutomatically 来自GeckoView的网络视图,但没有运气。 我发现像这样的链接很少 this 和 this . 我们可以通过在GeckoView中注入javaScript来阻止图像加载吗?

    0 回复  |  直到 4 年前
        1
  •  1
  •   Agi Sferro    4 年前

    您可以使用注册系统WebExtension installBuiltIn webRequest.onBeforeRequest 阻止从给定域或任何其他条件加载图像。

    例子:

    在下面创建一个文件夹 /assets/ 为了你的分机。 /assets/block-images 并添加一个 manifest.json 和 background.js 像这样的文件:

    显示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"]
      }
    }
    

    出身背景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中加载的任何页面都会阻止图像进入 mozilla.org 如 出身背景js 文件