我正在 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);
原因是 GeckoView 没有为此提供默认实现。您需要实现
PromptDelegate
(在本例中为 onChoicePrompt()
)。
Reference Browser 和 Firefox Preview 使用 Mozilla 的“Android Components”项目的实现。
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
火车绿洲 您能分享一下您的实现代码吗?项目结束时我遇到了大麻烦。
提前致谢...