2

我正在一个 android App 中实现一个 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);
4

1 回答 1

2

原因是 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

于 2019-11-04T10:09:47.957 回答