实施GeckoView Web扩展

问题描述 投票:1回答:1

我正在尝试为Android中的GeckoView实现一个noddy Web扩展,以仅在网页上执行一些javascript,相当于在普通Android WebView上执行webView.evaluateJavascript(),但是我在寻找任何有用的示例时遇到了麻烦或在线教程。

我以前曾经尝试过WebView,但是我试图在登录期间访问错误的网站意味着我无法访问它。但是,该登录可以使用GeckoView

到目前为止,我一直在关注这些内容:

  1. https://sammacbeth.eu/blog/2019/09/04/geckoview-extensions.html

  2. https://mozilla.github.io/geckoview/consumer/docs/web-extensions

  3. https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension

但是,它们似乎有些过时,甚至是mozilla自己的文档,因为我使用的API不再遵循示例。

我正在使用GeckoView的稳定版本:73.0.20200217142647

根据以上[3],我的文件结构是:

java
 |
 +-- assets
 |   |
 |   +--checkExtension
 |      |
 |      manifest.json
 |      checkExtension.js
 |
 +-- res
 |
 +-- src

manifest.json的内容是

 {

  "manifest_version": 2,
  "name": "checkExtension",
  "version": "1.0",

  "description": "Automatically clicks the authorise button to continue the photo upload.",

  "content_scripts": [
    {
      "matches": ["*"],
      "js": ["checkExtension.js"]
    }
  ],
  "permissions": [
    "nativeMessaging",
    "geckoViewAddons"
  ]

}

'matches'设置为'*',因此它应该与导航到的所有页面都匹配

checkExtension.js仅包含:

alert('hello')

我的GeckoView活动是:

GeckoView view = findViewById(R.id.geckoview);
GeckoSession session = new GeckoSession();
GeckoRuntime runtime = GeckoRuntime.create(this);

session.open(runtime);

WebExtension test = new WebExtension(
    "resource://assets/extension/checkExtension/",
    runtime.getWebExtensionController());

runtime.registerWebExtension(test);

view.setSession(session);
session.loadUri("https://www.google.com");

但是,页面加载时没有警报显示。除了尝试显示警报框外,我还尝试了一些针对特定站点的脚本,但是它们都不起作用。

是否有明显的缺失或任何资源可以帮助我?

非常感谢。

android mozilla firefox-webextensions geckoview
1个回答
2
投票
但是,页面加载时未显示任何警报
© www.soinside.com 2019 - 2024. All rights reserved.