Флаттер: отдельные плагины или файлы yaml для iOS и Android для одного приложения - PullRequest
0 голосов
/ 08 октября 2019

Я хочу использовать один плагин для версии Android и другой плагин для версии iOS. Но я не могу использовать два плагина одновременно (см. Описание ниже). Есть ли способ загрузить специфичный для платформы файл .yaml? Так что, если приложение компилируется для iOS, оно использует один плагин, а если оно компилируется для Android, оно использует другой плагин?

Причина этого заключается в следующем:

Я использовал image_pickerплагин для фотографирования в моем приложении. Проблема с этим плагином проявляется только на устройствах iOS: Flutter быстро потребляет всю доступную память, а приложение вылетает . Поэтому мне пришлось уменьшить размер изображения, установив свойство maxWidth следующим образом:

ImagePicker.pickImage(source: ImageSource.camera, maxWidth: 1024);

Но полученное изображение искажается (растягивается только на iOS), когда камера находится в портретном режимеРежим. Чтобы избежать этой проблемы, я нашел другой плагин image_picker_modern . Это не растягивает изображения на iOS, когда установлено свойство maxWidth. Этот плагин был фактически основан на плагине image_picker, поэтому код выглядит так же, как указано ранее. Проблема в том, что image_picker_modern даже не компилируется для Android.

Поэтому жизнеспособным решением было бы использовать первый плагин для устройств Android, а второй - для устройств iOS. Есть ли какое-то разрешение .yaml знать #ifdef Android использовать этот плагин, #else использовать другой? Или еще лучше - это можно решить во время компиляции на основе целевого устройства?

...