關於 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