下拉菜单(选择标签、组合框)在 GeckoView 实现中不起作用
Posted
技术标签:
【中文标题】下拉菜单(选择标签、组合框)在 GeckoView 实现中不起作用【英文标题】:Dropdown (Select tag, Combobox) not working in GeckoView implementation 【发布时间】:2020-02-28 10:35:25 【问题描述】:我正在 android 应用程序中实现 Geckoview 实例。一切看起来都正常工作,Geckoview 能够加载 URL。 我的问题是,如果网站有下拉菜单(选择标签、组合框),当我单击箭头时,选项不会出现。
我已尝试使用存储库的不同版本和渠道(夜间、发布、测试版),但我仍然遇到同样的问题。
我已经在不同的设备和版本的 android 上进行过尝试。
当我使用使用 Geckoview(参考浏览器,Firefox 预览)的浏览器时,“下拉菜单”工作得很好,所以我认为这是我的 Geckoview 实现中的配置问题。
GeckoView geckoview;
GeckoSession session;
GeckoRuntime runtime;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
geckoview = findViewById(R.id.geckoviewer);
session = new GeckoSession();
session.getSettings().setAllowjavascript(true);
session.getSettings().setDisplayMode(GeckoSessionSettings.DISPLAY_MODE_FULLSCREEN);
session.getSettings().setUserAgentMode(GeckoSessionSettings.USER_AGENT_MODE_MOBILE);
GeckoRuntimeSettings.Builder builder = new GeckoRuntimeSettings.Builder()
.javaScriptEnabled(true)
.consoleOutput(true);
runtime = GeckoRuntime.create(this, builder.build());
session.open(runtime);
【问题讨论】:
【参考方案1】:原因是 GeckoView 没有为此提供默认实现。您需要实现PromptDelegate
(在本例中为onChoicePrompt()
)。
查看 API 文档: https://mozilla.github.io/geckoview/javadoc/mozilla-central/org/mozilla/geckoview/GeckoSession.PromptDelegate.html
参考浏览器和 Firefox Preview 正在使用 Mozilla 的“Android 组件”项目中的实现。feature-prompts
组件实现了所有这些提示:
https://github.com/mozilla-mobile/android-components/tree/master/components/feature/prompts
“GeckoView 示例应用”使用了另一种实现,您可以在此处找到该代码: https://searchfox.org/mozilla-central/source/mobile/android/geckoview_example/src/main/java/org/mozilla/geckoview_example/BasicGeckoViewPrompt.java
【讨论】:
谢谢。我已经基于您共享的 Gecko View Example App 实现了甚至更简单的 PromptDelegate。它正在工作。 这个例子的一些实际解决方案会很好 - 它在网络上的任何地方都找不到。以上是关于下拉菜单(选择标签、组合框)在 GeckoView 实现中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
从子表单的组合框中选择下拉菜单后,MS Access 在主表单中填写 ID