Size: a a a

Dart & Flutter по-русски

2020 May 24

RC

Rv Ch in Dart & Flutter по-русски
то бишь какая то связка
источник

N

Nelkor in Dart & Flutter по-русски
Rv Ch
не знаю, наверное тут есть кто точно скажет или поправит, но это вроде как из за того что паз провайдер это плагин и он стучит к нативу
Вот это похоже на правду
источник

N

Nelkor in Dart & Flutter по-русски
Rv Ch
/// A concrete binding for applications based on the Widgets framework.
/// This is the glue that binds the framework to the Flutter engine.
class WidgetsFlutterBinding
А это не похоже 😅
источник

V

Vyacheslav in Dart & Flutter по-русски
Nelkor
Что за биндинг здесь имеется ввиду?
Если бы я так разбирался с каждой строкой кода, я бы наверное, писал ещё свой первый пет проектик...
источник

RC

Rv Ch in Dart & Flutter по-русски
уверен есть куча статей на этот счет с пояснением, по докам просто видно что создается инстанс чего то что наследует это и имеет кучу миксов
class WidgetsFlutterBinding extends BindingBase with GestureBinding, ServicesBinding, SchedulerBinding, PaintingBinding, SemanticsBinding, RendererBinding, WidgetsBinding {
источник

RC

Rv Ch in Dart & Flutter по-русски
Nelkor
Вот что пишет
в любом случае тут прям написано как разрулить ошибку
источник

N

Nelkor in Dart & Flutter по-русски
Rv Ch
в любом случае тут прям написано как разрулить ошибку
Это да, оно работает) но я уж точно не хотел бы оставлять в коде вызов какой-то функции, потому что "иначе ошибка возникает" 😅 за качеством всё-таки следить надо.

Спасибо большое за помощь 💪
источник

RC

Rv Ch in Dart & Flutter по-русски
Nelkor
Вот что пишет
бинари мессенджер используется для обращения к  нативной платформе, считай ты стукнулся, а инициализации биндинга не произошло
источник

N

Nelkor in Dart & Flutter по-русски
Rv Ch
бинари мессенджер используется для обращения к  нативной платформе, считай ты стукнулся, а инициализации биндинга не произошло
А бинари мессенджер — это какая-то известная штука или тоже магия? 😅
источник

RC

Rv Ch in Dart & Flutter по-русски
Nelkor
А бинари мессенджер — это какая-то известная штука или тоже магия? 😅
поговаривают это все описано в тырнетах, но я не верю, так что магия:)
источник

N

Nelkor in Dart & Flutter по-русски
Rv Ch
поговаривают это все описано в тырнетах, но я не верю, так что магия:)
Да я уже весь гугл перерыл)
источник

N

Nelkor in Dart & Flutter по-русски
В всех "статьях" на эту тему (статей-то нет, в основном какие-то вырезки из доки, ответы на вопросы) написано примерно одно: надо — вызывайте, не надо — не вызывайте)))
источник

ОС

Олжас Сулеймен... in Dart & Flutter по-русски
Nelkor
А бинари мессенджер — это какая-то известная штука или тоже магия? 😅
все в доке расписанно это каналы по которому плагины дергают нативные метода везде кроме веба
чтоб они работали надо чтоб запустился сервис который их обслуживает а он как раз и является одним из тех миксинов
источник

ОС

Олжас Сулеймен... in Dart & Flutter по-русски
если присмотреться то в сорцах runApp
можно увидеть WidgetsFlutterBinding.ensureInitialized()
источник

N

Nelkor in Dart & Flutter по-русски
Олжас Сулеймен
если присмотреться то в сорцах runApp
можно увидеть WidgetsFlutterBinding.ensureInitialized()
О, вот это поворот, спасибо! 💪
То есть тут всё дело именно в том, что я запрашиваю директорию до вызова runApp
источник

ОС

Олжас Сулеймен... in Dart & Flutter по-русски
Nelkor
О, вот это поворот, спасибо! 💪
То есть тут всё дело именно в том, что я запрашиваю директорию до вызова runApp
да когда еще ничего не запущено
источник

RC

Rv Ch in Dart & Flutter по-русски
Nelkor
О, вот это поворот, спасибо! 💪
То есть тут всё дело именно в том, что я запрашиваю директорию до вызова runApp
Future<Directory> getApplicationDocumentsDirectory() async {
 final String path =
     await _channel.invokeMethod<String>('getApplicationDocumentsDirectory');
источник

RC

Rv Ch in Dart & Flutter по-русски
вот этот метод стучит в этот канал чтобы получить нативный метод getApplicationDocumentsDirectory, ты можешь увидеть у себя плагин PathProvider в проекте, где в директории java найдешь Паз провайдер плагин класс
там есть свитч на строки
один из кейсов это
case "getApplicationDocumentsDirectory":
       result.success(getPathProviderApplicationDocumentsDirectory());
       break;
источник

RC

Rv Ch in Dart & Flutter по-русски
Rv Ch
вот этот метод стучит в этот канал чтобы получить нативный метод getApplicationDocumentsDirectory, ты можешь увидеть у себя плагин PathProvider в проекте, где в директории java найдешь Паз провайдер плагин класс
там есть свитч на строки
один из кейсов это
case "getApplicationDocumentsDirectory":
       result.success(getPathProviderApplicationDocumentsDirectory());
       break;
и сам метод
private String getPathProviderApplicationDocumentsDirectory() {
   return PathUtils.getDataDirectory(context);
 }
источник

RC

Rv Ch in Dart & Flutter по-русски
вот как то так в общем
источник