Передача Isolate/ControlPort через MethodChannel

В нашем приложении флаттера мы выполняем некоторую фоновую обработку. Для этого нам нужно создать новый флаттер-изолят в нашем собственном коде, чтобы мы могли запускать код, когда активность не открыта, на основе этого руководства: https://medium.com/@chetan882777/initiating-calls-to-dart. -с-родной-стороны-в-фоне-с-флуттер-плагином-7d46aed32c47

Теперь, чтобы не дублировать код и не вызывать проблем с параллелизмом, мы также хотели бы иметь доступ к этой изоляции фоновой обработки от основной изоляции пользовательского интерфейса флаттера. Таким образом, мы можем начать обработку как с собственного кода, так и с кода пользовательского интерфейса флаттера.

Тем не менее, кажется, что у нативного нет способа передать этот Isolate / ControlPort на сторону основного пользовательского интерфейса, чтобы он мог с ним взаимодействовать. Есть ли способ добиться этого (общаться с одним и тем же изолятом как со стороны нативного, так и со стороны пользовательского интерфейса)?

Из того, что я вижу, единственный способ сделать это потребует, чтобы нативный был посредником между двумя сторонами (отправьте задачу нативному, а затем нативный отправляет его обратно на другую сторону), но это похоже на много хлопот для одного флаттера разговаривая с другим флаттером.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
310
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Решением этой проблемы является IsolateNameServer.

Одна сторона может звонить IsolateNameServer.registerPortWithName(), а другая сторона может затем отправлять сообщения на этот порт через IsolateNameServer.lookupPortByName()

Другие вопросы по теме