关于 flutter_boost flutter调native后回传值


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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM