Эта ошибка, опубликованная на Github, похоже, предполагает, что touch events
намеренно скрыты в реализации Android якобы чтобы включить обнаружение longpresses
для целей копирования/вставки.
Моему собственному приложению абсолютно необходимо иметь возможность перехватывать события касания, а выделение текста при длительном нажатии не имеет никакого значения. Я думал, что сделаю это, используя локальную копию кода реализации Flutter webview, а затем отключив фильтр longpress
. Соответствующий код в webview_android.dart
читается
Мы предотвращаем выделение текста, перехватывая событие длительного нажатия. Это временная задержка из-за проблем с выделением текста на Android: https://github.com/flutter/flutter/issues/24585 — диалог выбора текста не реагирует на сенсорные события. https://github.com/flutter/flutter/issues/24584 — текст ручки выбора не отображаются. TODO (амирх): удалите это, когда проблемы, описанные выше, будут устранены. onLongPress: () {},
С этой целью я загрузил исходный код Flutter и убедился, что webview_flutter
доступен в папке с этим именем на два уровня ниже корневой папки моего проекта Flutter. После изменения pubspec.yaml
для чтения
webview_flutter:
path: ../../webview_flutter
и при запуске flutter clean && flutter run
APK был создан и установлен на моем тестовом устройстве. Однако затем сообщалось
Настройка FlutterEngine. D/FlutterActivityAndFragmentDelegate(24999): предпочтительный FlutterEngine не указан. Создание нового FlutterEngine для этого FlutterFragment. W/FlutterEngine(24999): Попытка автоматически зарегистрировать плагины с помощью FlutterEngine (io.flutter.embedding.engine.FlutterEngine@9480b1a), но не удалось найти и вызвать GeneratedPluginRegistrant.
Я не понимаю это сообщение. Я был бы очень признателен всем, кто мог бы сказать мне, как/можно ли это исправить.