channel肯定可以的,boost目前默认应该只支持flutter-flutter的回传,flutter-native和native-flutter可以自己实现

android:

FlutterBoost.singleton.open('url').then((result)=>{...}) flutter 调用 Android 如果需要返回值开启 activity的时候用 startActivityforResult 然后 关闭页面activity的时候 setResult 就可以在flutter的页面拿到返回值

router打开native的时候startActivityForResult
然后native页面返回的时候setResult就行了
Map map = new HashMap<String, String>();
map.put("a", "a");
Intent intent = getIntent().putExtra(IFlutterViewContainer.RESULT_KEY, (Serializable) map);
setResult(0, intent);

ios:

思路大致是当 flutter 调起原生的时候,flutter 的回调会存在 _callbackCache 这个字典里。然后手动调用 [BoostMessageChannel didInitPageContainer] 将原先存在 _callbackCache 里的回调转接给 _pageResultCallbacks。

最后手动调用 [FlutterBoostPlugin close] 来取出 _pageResultCallbacks 的对应的 flutter 回调并执行。这纯粹是依靠 boost 源码的执行流程来实现的,这还是需要官方开出相应的方法来。

参考https://github.com/alibaba/flutter_boost/issues/573

相关文章:

  • 2021-05-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-06
  • 2021-10-09
  • 2022-03-08
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-27
  • 2022-12-23
相关资源
相似解决方案