flutter boost 如何从native跳转到flutter页面

Flutter Boost 是一个 Flutter 插件,它可以帮助开发者在原生应用和 Flutter 应用之间无缝跳转。以下是一些基本步骤,展示了如何使用 Flutter Boost 从原生(Native)页面跳转到 Flutter 页面。

1. 配置 Flutter Boost

在你的 Flutter 项目中集成 Flutter Boost 插件。这通常涉及到修改 `pubspec.yaml` 文件来添加依赖项,并根据 Flutter Boost 的文档进行配置。

dependencies:
  flutter_boost: ^x.y.z  # 使用最新版本

确保运行 `flutter pub get` 来安装插件。

2. 初始化 Flutter Boost

在你的原生应用(Android 或 iOS)中初始化 Flutter Boost。举例来说,对于 Android 应用,你可能需要在 `Application` 类中进行初始化。

Android 示例:

 

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // 初始化 Flutter Boost
        BoostFlutterEngine engine = FlutterBoost.instance().engineProvider();
        FlutterBoost.instance().setup(this, new FlutterBoostDelegate() {
            @Override
            public void pushNativeRoute(String pageName, Map arguments) {
                // 处理从 Flutter 页面跳转到原生页面的逻辑
            }

            @Override
            public void pushFlutterRoute(String pageName, String uniqueId, Map arguments) {
                // 处理从原生页面跳转到 Flutter 页面的逻辑
            }
        }, engine);
    }
}

 iOS 示例:

在 `AppDelegate` 中初始化 Flutter Boost。

#import 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [FlutterBoostPlugin.sharedInstance startFlutterWithPlatform:self
                                                        onStart:^(FlutterEngine *engine) {
        // 设置初始路由
        [engine.navigationChannel invokeMethod:@"setInitialRoute" arguments:@"/"];
    }];
    return YES;
}

3. 从原生跳转到 Flutter 页面

在你的原生代码中,调用 Flutter Boost 提供的方法来打开一个 Flutter 页面。

Android 示例:

 

FlutterBoost.instance().open("flutterPage", new HashMap<>());

这里的 `"flutterPage"` 是你希望跳转到的 Flutter 页面的名称,你需要在 Flutter 代码中对它进行注册。

 iOS 示例:

[FlutterBoostPlugin open:@"flutterPage" arguments:@{} completion:^(BOOL f) {
    // 页面打开后的回调
}];

4. 在 Flutter 代码中注册页面

在你的 Flutter 代码中,注册你希望从原生跳转到的页面。这需要使用 Flutter Boost 提供的路由管理功能。

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      builder: FlutterBoost.init(),
      home: MyHomePage(),
      // ...
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      // ...
    );
  }
}

void main() {
  // 注册页面
  FlutterBoost.singleton.registerPageBuilders({
    'flutterPage': (pageName, params, _) => MyFlutterPage(),
  });
  // 运行应用
  runApp(MyApp());
}

在上面的示例中,Flutter Boost 使用 `registerPageBuilders` 方法来注册页面名称和对应的构造函数映射。

这些步骤大致概述了如何使用 Flutter Boost 进行页面跳转。你应该根据你的应用需求和 Flutter Boost 的具体版本来调整这些代码。一些细节,如 Flutter Boost 的配置和 API 可能会根据不同的版本稍有不同,因此最好查阅官方文档来获取最新和最准确的信息。

你可能感兴趣的:(flutter,flutter)