我想在我的项目中使用
GeckoView
。但我需要在这个项目中运行一些 Javascript 代码。我怎样才能实现这个目标?
GeckoSession.loadUri
API 注入 JavaScript 代码
loadUri("javascript:{js_code}")
这曾经有用,我不确定它现在还能用吗:)
编辑 - 另一个选择是创建一个 WebExtension 来与内容交互。 GeckoView 这里有一些文档。您应该能够在扩展的清单中声明内容脚本文件名,并将内容脚本与您的扩展捆绑在一起。
您应该覆盖
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'; })();")