1

我是 Flutter 新手,尝试了 flutter.io 提供的 hello_services 示例。在那个例子中,颤动视图和原生视图都在同一个屏幕上。我的问题是,如何导航到两个不同的屏幕,比如一个用颤振写的,另一个用原生(android/ios)用参数或额外的。请帮助!!!!谢谢

4

1 回答 1

4

我找到的唯一解决方案是将消息发送到您的本机视图(https://flutter.io/platform-services/),在 Java 或 Swift/ObjectiveC 代码中捕获消息,然后导航到另一个视图。

飞镖代码

Map params = <String, dynamic>{
  "view": "MyView"
};

PlatformMessages.sendJson("navigateTo", params);

Java 代码

flutterView.addOnMessageListener("navigateTo", new FlutterView.OnMessageListener() {
                @Override
                public String onMessage(FlutterView view, String message) {
                  try {
                     JSONObject object = new JSONObject(message);
                     if (object.getString("view") == "MyView") {
                       // navigate to MyView
                     }
                  } catch (JSONException e) {
                     e.printStackTrace();
                  }
                    return null;
                }
            });
于 2017-02-15T12:48:07.683 回答