问题标签 [geckoview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 为什么我不能用 GeckoView 完全渲染 html?
我正在尝试从 url 获取 html 并操作 html,然后使用 GeckoView 呈现它
我打算使用 Jsoup 从 url 获取 html 字符串,但这表示使用 Jsoup 获取完整的 html 存在问题
所以我找到了另一种使用 GeckoView 获取 html 的方法(这个和api 参考)
所以我成功地从一个 url 获取了一个 html 字符串并只用 GeckoView 渲染它
这是代码
问题是网页没有像下面这样完全打印出来
我对上面的代码还有一个问题
如果我在下面编写这样的代码,我发现了这一点
geckoSession.loadData() 方法比结果先执行。然后 lambda 函数
我不明白为什么会这样
所以我的问题是
- 为什么我不能完全打印网页?
- 为什么那个 lambda 函数执行得这么晚?
android - 如何在尝试使用 GeckoView 时修复此错误“错误:找不到方法 compileOptions()”?
我正在尝试使用 GeckoView 创建一个 android 应用程序,我使用以下链接作为参考:
https://mozilla.github.io/geckoview/consumer/docs/geckoview-quick-start
我按照示例中的方式执行所有操作,但出现以下错误:
错误:在 org.gradle.api.Project 类型的项目“:app”上找不到参数 [build_5wez28ua38x3wb7sd9hq4qbni$_run_closure4@7323414] 的方法 compileOptions()。
构建.gradle
gecko - 下拉菜单(选择标签、组合框)在 GeckoView 实现中不起作用
我正在一个 android App 中实现一个 Geckoview 实例。一切看起来都正常工作,Geckoview 能够加载 URL。我的问题是,如果一个网站有一个下拉菜单(选择标签,组合框),当我点击箭头时,选项不会出现。
我尝试使用存储库的不同版本和渠道(夜间、发布、测试版),但我仍然遇到同样的问题。
我在不同的设备和版本的 android 中尝试过。
当我使用使用 Geckoview(参考浏览器,Firefox 预览)的浏览器时,“下拉菜单”工作得很好,所以我认为这是我的 Geckoview 实现中的配置问题。
android - GeckoView Android Pixel 2 错误
我将 GeckoView 版本 70.0.20190712095934 每晚集成到示例应用程序中。它在我的带有 Android 6 的旧 Nexus 5 上运行良好(-> 网站显示)。但如果我在我的 Pixel 2 上运行相同的应用程序,页面根本不会加载。我已经尝试使用最新的稳定 GeckoView 版本,在 Nexus 上一切正常,但在 Pixel 2 上崩溃。使用最新版本,我什至收到 SIGSEV 错误并在 Pixel 2 上完全崩溃。
这是日志:
来自 Github 的所有其他示例 GeckoView 项目也没有工作,同样的错误。任何想法将不胜感激。
android - 无法初始化 GeckoRuntime | 壁虎查看 | 安卓
我在 onCreat() 中调用 setUpGeckoView 方法,但是当我单击返回并重新打开应用程序时,应用程序崩溃并出现 IllegalStateException 说“无法初始化 GeckoRuntime。它第一次工作只有在我单击返回然后再次打开应用程序时才会崩溃”
日志如下
android - Android Studio - Gradle 实现 (...) { exclude ... } 不起作用(无法从依赖项中排除组)
我已将以下两个库 (ExoPlayer
和GeckoView
) 添加到我在 Android Studio 中的 Android 应用程序中:
当我开始构建项目时,我意识到这些库一起存在冲突(Gradle Sync 成功):
我得到了很多像上面这样的错误行。所以我决定将该ExoPlayer
组排除在外GeckoView
(因为我已经有了):
我再次同步(再次同步成功)并开始构建,但没有效果,错误再次发生。
我应该怎么办?
java - 如何使用壁虎获取当前页面 URL?
我试图让我的 android 网络浏览器只打开特定的 url。因此,我想检查加载的 url 是否符合要求,并据此做一些事情。我看到了很多关于 WebView 的答案,但由于我必须使用开源浏览器(Mozilla Firefox),所以我使用的是 gecko。这是我的代码,我试图用 onLoadRequest 做一些事情,但我不知道如何让它工作。谢谢。
javascript - 用于操作 Facebook 图像的 Javascript 代码在控制台中有效,但在扩展中无效
我一直在尝试创建一个基于 GeckoView 的网络扩展,用于在我的 facebook 移动提要上下载图像。因此,作为第一次运行,我使用谷歌浏览器中的 Inspect> 控制台来测试一个简单的脚本来检测所有图像并使边框变为红色:
上面的代码行在许多网站(包括 facebook)的 google chrome 控制台中运行良好。但是,当我将 JS 代码打包为 geckoview Web 扩展的内容脚本时,它根本无法工作!以下是我迄今为止尝试过的所有技巧:
通过包括以下内容确保在文档之后加载 content_script:
也试过:
"run_at": document_idle.
通过使用确保“X 射线”视力关闭
document.wrappedJSObject.getElementsByTagName("img")
取消注册和重新注册网络扩展。
这些都不起作用。有趣的是,网络扩展适用于除 facebook 之外的所有其他网站!所以我怀疑我有两个问题之一:
- Facebook 在隐藏 DOM 方面做得非常好!
- GeckoView 无法访问“动态生成”图像元素的 DOM。
任何帮助,将不胜感激 :)
android - 实施 GeckoView Web 扩展
我正在尝试在 Android 中为 GeckoView 实现一个 noddy 网络扩展,以简单地在网页上执行一些 javascript,相当于普通 Android WebView 上的 webView.evaluateJavascript(),但是我无法找到任何有用的示例或教程在线的。
我之前曾尝试过 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],我的文件结构是:
manifest.json 的内容是
'matches' 设置为 '*' 以便它应该匹配导航到的所有页面
checkExtension.js 只包含:
我的 GeckoView 活动是:
但是,页面加载时不会显示任何警报。除了尝试显示警告框之外,我还尝试了一些特定于站点的目标脚本,但是它们都没有工作。
有什么明显的遗漏或任何可能对我有帮助的资源吗?
非常感谢。
android - 获取 GeckoSession 的标签 ID?
我正在尝试创建 2 个 GeckoSessions 来代表两个选项卡。
我有一个带有背景脚本的网络扩展。我想向每个选项卡的内容脚本发送单独的消息,但为此我需要知道选项卡 ID(我不想将消息发送到所有选项卡,因为每个选项卡都可以加载相同的页面)。
获取每个 GeckoSession 对象的选项卡 ID 的最佳方法是什么?