Ситуация: при создании приложения было выбрано не то имя для пакета.
Решение: для решения проблемы, в pubspec.yaml добавим пакет change_app_package_name (в секцию dev_depencies), после чего в командной строке в папке приложения выполним:
flutter pub run change_app_package_name:main ru.цву.увцувцу
Зачастую нужно вызвать не просто событие, но и передать ему параметры. Делается это примерно так:
event.dart
abstract class MyStaticEvent {}
class InitEvent extends MyStaticEvent {}
class StartUpdateList extends MyStaticEvent {} // Запущен процесс обновления списка статистики
class UpdateList extends MyStaticEvent {} // Обновить список статистики пользователя
class UpdateListFull extends MyStaticEvent {
final DateTime startDate;
final DateTime endDate;
final int car;
UpdateListFull(this.startDate,this.endDate,this.car);
} // Обновить список статистики пользователя
Работа с webview во Flutter не так проста как на «чистом» Java/Kotlin. В основном из-за того что, на pub.dev есть большое разнообразие собственно вапперов к webview, а потому выбрать рабочую и полноценную реализацию не так просто. Я например потратил с полдня, чтобы выяснить, что:
webview_flutter — не отображает страницы с «плохими» сертификатами SSL. Например самоподписанными, или с сертификатами с истёкшим сроком действия, или с сертификатом к которому нет доверия (теперь это все сайты госучреждений и некоторых банков). И нет никакого способа (или не нашел), заставить это сделать.
flutter_inappwebview — та же самая проблема что и в вышеуказанном плагине. Да, там есть ключ «игнорировать ошибки SSL», но он не работает
flutter_webview_plugin — выпущен 21 месяц назад, и при компиляции уже ругается на отсутствие поддержки Android 12. Хотя как раз этот плагин, работает со страницами с плохим SSL именно так как нужно
flutter_webview_plugin_ios_android — а вот этот плагин, это как я понял «подхваченый из ослабеших» рук разработчиков flutter_webview_plugin, и доработаный уже под Android 12. На нём мои поиски и закончились. Ниже минимальный пример для работы с ним:
к сожалению нет. Чтобы включить в проект все файлы папки, можно воспользоваться небольшим трюком — создать в корне папки еще один файл с содержимым вида:
Основная идея данной архитектуры — отделить отрисовку от логики. Побочная возможность — еще один способ изменения данных виджета из другого виджета, без использования StreamController (ну на самом деле он таки используется но «внутри») и передергивания SetState
Итак, для использования нужно в pubspec.yaml добавить: