问题标签 [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.

0 投票
1 回答
92 浏览

android - 在 GeckoView 中以编程方式放大页面?

当我双击页面时,它会放大。但是如何在 GeckoView 中以编程方式实现相同的效果?

0 投票
2 回答
349 浏览

android - 在 GeckoView for Android 中允许跨域请求

我构建了一个媒体控制 web 应用程序,通过使用设备的 web API 用一个应用程序控制我的电视和 av-receiver。目前我通过 ajax 请求调用 PHP 脚本,PHP 脚本使用 curl 进行 API 调用。所以我对跨域请求没有任何问题。但我总是必须运行一个网络服务器。理论上可以直接向 Web API 发出 ajax 请求,但随后出现跨域请求错误。而且我无法配置设备的 http 标头。所以问题是:默认情况下是否可以在 GeckoView 中允许跨域请求?

0 投票
1 回答
490 浏览

compatibility - 尝试使用 GeckoView 制作浏览器时出现 java.lang.ClassNotFoundException

我在 Java 编程方面非常新手。尝试使用本地存储的 GECKOVIEW 库创建浏览器时遇到错误消息。构建完成,但应用程序崩溃。非常感谢您的帮助,因为我非常卡住,事实证明很难找到有关 GeckoView 出现问题的信息。

错误信息:

(底部的完整错误消息)

构建 Gradle:应用程序:

GeckoView 库被复制粘贴到项目库文件夹中。

构建 Gradle 项目:

主要活动:

完整的错误信息:

0 投票
1 回答
820 浏览

android - 使用 GeckoView Android 与 Web 内容进行本机消息传递

我正在尝试创建一个仅使用 GeckoView 作为 webview 的混合应用程序。我正在关注链接以建立本机和 HTML/Javascript 之间的通信。我正在使用基于连接的消息传递。到目前为止,我能够从本机接收消息并将消息从后台脚本发送回本机。但我无法执行以下操作:

  1. 显示来自后台脚本的消息:我试图在后台脚本中显示自定义事件的值,但它不起作用。代码如下:

    }

  2. 我试图从内容脚本发送消息,但它也不起作用,因为我正在获取浏览器未定义。

我曾尝试使用 chrome 而不是浏览器,但它给出了相同的结果。我正在使用 78.0.20200601093812 版本的 GeckoView。我的仅后台脚本清单如下:

0 投票
0 回答
395 浏览

firefox-addon-webextensions - 如何将 JS 注入 Android 中的 GeckoView?

在迁移到 GeckoView 的 77.0.20200603183750 版本之前,我们使用的是 71.0.20191208234333 版本,所以我们必须更改 imp. WebExtension 实例,它只采用一个参数,即 JS 文件的位置

从:

至:

虽然 JS 注入成功,但这会导致无法传递网页的当前状态。由于此操作,Session.loading即使页面加载成功,布尔字段仍然为真。

我们在迁移到新版本时使用了firefox-source-docs,我们无法在 .77 版的实例上调用ensureBuiltIn方法。WebExtensionControllerGeckoView

根据上面的文档,我们需要像下面那样调用 ensureBuiltIn 方法,但我们不能调用,因为它在编译的 WebExtension.class 中变成了内部方法。

在 GeckoView 中迁移到新版本的 WebExtension 时,是否有人帮助我们了解我们所缺少的内容?

0 投票
1 回答
528 浏览

java - android 应用程序中的 Geckoview 因错误“java.lang.Exception:加载 sqlite 库时出错”而崩溃

我已经在这里和其他地方阅读了很多关于 geckoview 的文章和操作指南,但我没有找到任何解决我的问题的方法。我在我的 android 应用程序中集成了 geckoview(作为 webview 的替代品)。我按照howtos中的说明做了所有事情,但此刻,活动想要显示,应用程序崩溃,错误“java.lang.Exception:加载sqlite库时出错”。有人可以帮助我吗?

build.gradle(模块)

活动 xml

活动顶部

创建活动

堆栈跟踪

0 投票
0 回答
176 浏览

android - 在 Android 上使用 Geckovow 发送代理身份验证请求

我正在使用 Android 上的 Geckoview 构建一个概念验证浏览器。作为要求的一部分,我需要能够将其配置为通过代理服务器进行身份验证。我已经尝试了各种配置选项,但似乎无法在从代理服务器收到 407 时弹出一个带有代理身份验证请求的对话框或发送存储的凭据。请求在没有身份验证信息的情况下到达代理,服务器以 407 响应。

当我在模拟器中执行 about:config 并尝试了诸如 network.automatic-ntlm-auth.allow_proxies (true,false) 之类的设置时,我确实看到了配置选项设置。有人可以建议在 geckoview 中设置和 http(s) 代理所需的最低设置。

0 投票
0 回答
91 浏览

android - Mozilla EngineView Geckoview 渲染的元素隐藏在工具栏后面

使用 android mozilla 移动 android 组件构建浏览器。我有一个动态顶部工具栏和一个动态底部工具栏覆盖 mozilla.components.concept.engine.EngineView (在幕后使用 Geckoview)。工具栏在引擎视图滚动时显示/隐藏。

问题是网页元素隐藏在本机工具栏后面。例如 youtube.com 主页具有基于 html 的动态顶部和底部工具栏,它们隐藏在我的本机工具栏后面。

mozilla.components.feature.session.behavior.EngineViewBottomBehavior 类更改操作方法告诉 engineview 在哪里放置元素。如果我的应用程序中有一个工具栏,这将有效。例如,如果我只有一个顶部工具栏,那么 topToolbarChangedAction() 设置垂直剪辑,并且 youtube.com html 顶部工具栏放置在我的本机工具栏下方。但是,当我有 2 个工具栏(底部和顶部)需要同时定位顶部和底部的 html 元素时,我不知道如何解决。下面是来自 mozilla 行为类的代码片段,其调用如下

https://github.com/mozilla-mobile/android-components/blob/master/components/feature/session/src/main/java/mozilla/components/feature/session/behavior/EngineViewBrowserToolbarBehavior.kt

0 投票
2 回答
508 浏览

android - 无法为 gradle build android studio 类型的对象获取未知属性

在我的 android studio 项目中,我的 gradle.build 文件看起来一模一样

但是在运行时./gradlew我得到了看起来像的错误

我在这里没有发现任何遗漏或错误。我在这里想念什么。

0 投票
1 回答
63 浏览

firefox-addon-webextensions - 使用 GeckoView 的 HtmlPage 和 AndroidApp 之间的消息

不幸的是,我使用了一个 WebView 不可用的平台,因此,我无法利用 JavascriptInterface 的简单性从我的网页与我的应用程序进行交互。

是否有一个完整的(直接的)示例解释如何使用 Geckoview 与我的 Android 应用程序交互页面?

我尝试了此页面(和其他)上的步骤:

https://firefox-source-docs.mozilla.org/mobile/android/geckoview/consumer/web-extensions.html

坦率地说,我从来没有见过隐藏这么多细节的页面。

像这样简单的 HTML 页面,托管在“http://example.com/x.html”中(比如说):

安卓端: