Я хочу использовать один плагин для версии 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
использовать другой? Или еще лучше - это можно решить во время компиляции на основе целевого устройства?