Можно ли использовать FlutterBinaryMessenger для IPC между Flutter и расширением приложения MacOS/iOS без пользовательскIOS

Программируем под IOS
Ответить
Anonymous
 Можно ли использовать FlutterBinaryMessenger для IPC между Flutter и расширением приложения MacOS/iOS без пользовательск

Сообщение Anonymous »

Я разрабатываю приложение Flutter и расширение поставщика файлов без пользовательского интерфейса (MacOS/iOS). Расширение выполняется в отдельном процессе, и мне нужен код Flutter для связи с расширением.
В идеале у меня должен быть один BasicMessageChannel в приложении Flutter и один FlutterBinaryMessenger в расширении.
До сих пор мне удавалось взаимодействовать с вышеуказанными классами, но только между изолятом флаттера и кодом Swift хост-приложения, который содержит AppDelegate. Код похож на этот.
Наличие FlutterBinaryMessenger в коде расширения несколько сложнее. Я попробовал этот код:

Код: Выделить всё

let bundle = Bundle()
let project = FlutterDartProject(precompiledDartBundle: bundle)
let flutterEngine = FlutterEngine(name: "Extension flutter engine", project: project)
let flutterMessenger = flutterEngine.binaryMessenger;
let flutterMessenger.setMessageHandlerOnChannel(
"my.app.example/fileProvider",
binaryMessageHandler: { message, reply in
NSLog("Received message in the extension: \(message as Optional)")
reply(nil)
}
)
let success = flutterEngine.run(withEntrypoint: nil)
NSLog("Success starting flutter engine: \success")
К сожалению, команда flutterEngine.run(withEntrypoint: nil) возвращает false, и я не знаю, как действовать дальше.
Другая проблема заключается в том, что даже если я запущу движок, я даже не уверен, должно ли межпроцессное взаимодействие работать с этими каналами сообщений Flutter или оно просто поддерживает связь с изолятом Flutter. и его хост-код, которые выполняются в одном и том же процессе.
Я могу придумать обходной путь: использовать Flutter Messenger для связи между Flutter и хост-приложением, а затем использовать XPC. для связи между приложением хостинга и расширением. Хотя хотелось бы избежать этого, если это возможно.

Подробнее здесь: https://stackoverflow.com/questions/787 ... on-ui-maco
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»