Невозможно сделать снимок экрана в V2 Flutter с использованием собственного кода, он хорошо работал в V1 Flutter - PullRequest
1 голос
/ 26 мая 2020

Мы создаем SDK, который будет делать снимки экрана приложения после его интеграции. Мы можем делать скриншоты для платформ Native Android, Native iOS, Cordova, IONI C, React Native, Xamarin. Однако не удалось сделать снимок в V2 Flutter. Код работал нормально до V1 Flutter. Но когда тот же собственный код при выполнении на V2 Flutter возвращает ЧЕРНЫЙ снимок экрана приложения.

Проблема здесь в том, что FlutterView из V1 был общедоступным для сторонних плагинов с использованием метода registrar.view (), в V2 это представление теперь не доступно никаким плагинам! https://api.flutter.dev/javadoc/io/flutter/plugin/common/PluginRegistry.Registrar.html Используя FlutterView из V1, мы смогли сделать снимок экрана представлений с помощью PixelCopy, мы не смогли получить FlutterView из V2, и мы не нашли никакого решения для его захвата.

Мы пробовали следующее, но безуспешно. Может ли кто-нибудь помочь мне здесь?

  1. Пытался получить действие из контекста, который мы передаем при инициализации нашего SDK, мы просмотрели действие и попытались нарисовать его, были сделаны пустые снимки экрана
  2. Пытался перенести плагин SDK Flutter на V2, используя https://flutter.dev/docs/development/packages-and-plugins/plugin-api-migration
  3. Пытался пройти по иерархии представлений и нарисовать представления с использованием контекста действия, сохраняются пустые снимки экрана
  4. Пробовали для рисования представления, полученного от FlutterActivity.getWindow (). getDecorView (). getRootView (), с сохранением пустых снимков экрана.
...