zoukankan      html  css  js  c++  java
  • 关于 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

  • 相关阅读:
    Go语言操作etcd
    grafana使用
    Java整理
    Go操作MySQL
    Go语言操作Redis
    es
    influxDB
    gopsutil
    Java基础之(三):IDEA的安装及破解 lyl
    ClojureScript 点访问格式
  • 原文地址:https://www.cnblogs.com/nightfallsad/p/12717917.html
Copyright © 2011-2022 走看看