Я пытаюсь реализовать простое веб-расширение для GeckoView в Android, чтобы просто выполнить javascript на веб-странице, что эквивалентно webView.evaluate Javascript () в обычном Android WebView, однако у меня возникают проблемы с поиском каких-либо полезных примеров или руководств в Интернете.
Ранее я уже пробовал WebView, однако сайт, на котором я пытаюсь получить доступ к ошибкам во время входа, означает, что я не могу получить к нему доступ. Однако логин работает с GeckoView
. Я следовал этим инструкциям:
https://sammacbeth.eu/blog/2019/09/04/geckoview-extensions.html
https://mozilla.github.io/geckoview/consumer/docs/web-extensions
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
Содержимое манифеста. json is
{
"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"
]
}
'match' установлено в '*', так что оно должно соответствует любой и всем страницам, которые перешли на
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");
Однако предупреждение не отображается когда страница загружается. Я пробовал несколько специфичных для сайта c целевых сценариев, кроме попыток показать окно оповещения, однако ни один из них не сработал.
Есть ли что-то очевидное, что отсутствует или какие-либо ресурсы, которые могут мне помочь ?
Большое спасибо.