Dropdown (Выбрать тег, Combobox) не работает в реализации GeckoView - PullRequest
1 голос
/ 02 ноября 2019

Я реализую экземпляр Geckoview в приложении для Android. Все выглядит правильно, и Geckoview может загрузить URL. Моя проблема в том, что если на сайте есть выпадающий список (выберите тег, Combobox), когда я нажимаю на стрелку, параметры не отображаются.

Я пытался использовать разные версии и каналы хранилищ (по ночам,Release, бета), и у меня все еще остается та же проблема.

Я пробовал на разных устройствах и версиях Android.

Когда я использую браузер, который использует Geckoview (Reference Browser,Предварительный просмотр 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 Ответ

1 голос
/ 04 ноября 2019

Причина в том, что GeckoView не предоставляет реализацию по умолчанию для этого. Вам необходимо реализовать PromptDelegate (и в этом случае onChoicePrompt()).

См. Документы API: https://mozilla.github.io/geckoview/javadoc/mozilla-central/org/mozilla/geckoview/GeckoSession.PromptDelegate.html

Браузер ссылок и предварительный просмотр Firefox используют реализацию из проекта Mozilla "Компоненты Android". Компонент feature-prompts реализует все эти запросы: https://github.com/mozilla-mobile/android-components/tree/master/components/feature/prompts

Другая реализация используется приложением "GeckoView Example", и вы можете найти этот код здесь: https://searchfox.org/mozilla-central/source/mobile/android/geckoview_example/src/main/java/org/mozilla/geckoview_example/BasicGeckoViewPrompt.java

...