• 关于 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

  • 相关阅读:
    Oracle求连续的年份
    关于Extjs MVC模式上传文件的简单方式
    后进先出 stack、 先进先出Queue
    python的文件操作
    C#的接口
    C#的访问级别
    C#的继承
    SQL查询语句 常用示例
    SQL Server数据库常用函数
    数据库建立和连接
  • 原文地址:https://www.cnblogs.com/nightfallsad/p/12717917.html
Copyright © 2020-2023  润新知