如何将Javascript注入到Android上的GeckoView

问题描述 投票:0回答:2

我想在我的项目中使用

GeckoView
。但我需要在这个项目中运行一些 Javascript 代码。我怎样才能实现这个目标?

android firefox mozilla gecko geckoview
2个回答
3
投票

一种可能的方法是使用

GeckoSession.loadUri
API 注入 JavaScript 代码

loadUri("javascript:{js_code}")

这曾经有用,我不确定它现在还能用吗:)

编辑 - 另一个选择是创建一个 WebExtension 来与内容交互。 GeckoView 这里有一些文档。您应该能够在扩展的清单中声明内容脚本文件名,并将内容脚本与您的扩展捆绑在一起。


0
投票

您应该覆盖

fun onPageStop()
中的
GeckoSession.ProgressDelegate
并通过 javascript 注入调用
GeckoSession.loadUrl()

此隐藏所选元素:

GeckoSession.loadUri("javascript:(function() { document.querySelector('a[role=\"button icon\"]').style.visibility = 'hidden'; })();")

这一套独立模式:

GeckoSession.loadUrl(" javascript: (function() { const originalMatchMedia = window.matchMedia; window.matchMedia = function(query) { if (query === \"(display-mode: standalone)\") { return { matches: true, addListener: () => {}, removeListener: () => {} }; } return originalMatchMedia(query); }; })(); ")

您还可以在默认的 android WebView 中使用此注入模式:

WebView.loadUri("javascript:(function() { document.querySelector('a[role=\"button icon\"]').style.visibility = 'hidden'; })();")
© www.soinside.com 2019 - 2024. All rights reserved.