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

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

### 1. 配置 Flutter Boost

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

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

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

### 2. 初始化 Flutter Boost

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

#### Android 示例:

```java
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<String, Object> arguments) {
                // 处理从 Flutter 页面跳转到原生页面的逻辑
            }

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

#### iOS 示例:

在 `AppDelegate` 中初始化 Flutter Boost。

```objc
#import <flutter_boost/FlutterBoost.h>

- (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 示例:

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

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

#### iOS 示例:

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

### 4. 在 Flutter 代码中注册页面

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

```dart
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 可能会根据不同的版本稍有不同,因此最好查阅官方文档来获取最新和最准确的信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/775308.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GPU系列】选择最适合的 CUDA 版本以提高系统性能

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

什么是数据仓库

数据仓库定义 数据仓库,按照传统的定义,数据仓库是一个面向主题的、集成的、持久的(非易失的)、反映历史变化(随时间变化),用来支持管理人员决策的数据集合。 通俗讲,企业希望能够更快得处理比较多的数据,数据仓库由此诞生。 就像是企业的财务系统。各个部门(面向主…

nvm安装以后,node -v npm 等命令提示不是内部或外部命令

因为有vue2和vue3项目多种&#xff0c;所以为了适应各类版本node,使用nvm管理多种node版本&#xff0c;但是当我按教程安装nvm以后&#xff0c;nvm安装以后&#xff0c;node -v npm 等命令提示不是内部或外部命令 首先nvm官网网址&#xff1a;https://github.com/coreybutler/…

数据结构——栈(C语言版)

前言&#xff1a; 在学习完数据结构顺序表和链表之后&#xff0c;其实我们就可以做很多事情了&#xff0c;后面的栈和队列&#xff0c;其实就是对前面的顺序表和链表的灵活运用&#xff0c;今天我们就来学习一下栈的原理和应用。 准备工作&#xff1a;本人习惯将文件放在test.c…

[C++]深入解析:如何计算C++类或结构体的大小

目录 什么是内存对齐 类的成员的存储规则 怎么进行内存对齐&#xff08;介绍规则与例子讲解&#xff09; 什么是内存对齐 内存对齐是指将数据存储在内存中时&#xff0c;按照一定的规则让数据排列在规定的地址上&#xff0c;以提高数据访问的效率和速度。在C中&#xff0c;结…

维修贝加莱工业电脑触摸屏BR 5PP320.0571-39 Power Panel 300工控屏

维修贝加莱工业电脑触摸屏B&R 5PP320.0571-39 Power Panel 300工控屏 贝加莱工业电脑4P3040.01-490 描述 贝加莱电源面板4P3040.01-490 扩展产品类型&#xff1a;HMI/触摸屏 产品编号&#xff1a;4P3040.01-490 B&R 类型名称&#xff1a;HMI/触摸屏 描述 Power…

鸿蒙OS开发问题:(ArkTS)【 RSA加解密,解决中文乱码等现象】

RSA加解密开始构建工具类就是举步维艰&#xff0c;官方文档虽然很全&#xff0c;但是还是有很多小瑕疵&#xff0c;在自己经过几天的时间&#xff0c;彻底解决了中文乱码的问题、分段加密的问题。 首先看官方示例代码(以RSA非对称加解密&#xff08;多次调用doFinal实现分段&a…

TikTok养号怎么做?打破0播放的前提是做好这些

TikTok养号的重要性不必多少&#xff0c;不仅可以在创号初期保障账号安全&#xff0c;后期的账号流量也需要以前期养好账号为前提。下面就给大家分享如何养号的真实操作攻略&#xff01; 一、为什么要养号 &#xff08;1&#xff09;提高系统推荐精准度 系统不了解新账户人设…

spring boot 生成PDF模板文件

1、主要目录 2、maven依赖 <!--工具类依赖--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.19</version></dependency><dependency><groupId>com.alibaba&l…

Python django vue 学生信息管理案例源码

Python django vue 学生信息管理案例源码 运行教程 开发环境 链接地址

56. 合并区间(力扣LeetCode)

文章目录 56. 合并区间题目描述思路贪心算法方法一&#xff1a;直接在res中修改代码逻辑梳理&#xff1a; 方法二&#xff1a;在原数组中插入一个超出题目范围的数组代码逻辑梳理&#xff1a; 56. 合并区间 题目描述 以数组 intervals 表示若干个区间的集合&#xff0c;其中单…

律甲法务OA平台:信鸥科技引领法律行业新篇章

随着信息技术的飞速发展&#xff0c;法律行业也迎来了数字化转型的重要时刻。在这个信息化、智能化的时代&#xff0c;如何运用科技手段提升法律服务的质量和效率&#xff0c;成为法律行业亟待解决的问题。信鸥科技&#xff0c;作为业界的佼佼者&#xff0c;凭借其深厚的技术积…

7、jenkins项目构建细节-常用的构建触发器

文章目录 一、常用的构建细节1、触发远程构建2、其他工程构建后触发3、定时构建4、轮询SCM(Poll SCM)二、Git hook自动触发构建(☆☆☆)1、安装插件2、Jenkins设置自动构建3、Gitlab配置webhook三、Jenkins的参数化构建1、项目创建分支,并推送到gitlab上2、在Jenkins添加字…

Kafka详细教程(一)

总体目录 1、什么是消息队列 消息队列&#xff0c;英文名&#xff1a;Message Queue&#xff0c;经常缩写为MQ。从字面上来理解&#xff0c;消息队列是一种用来存储消息的队列 。来看一下下面的代码 // 1.创建一个保存字符串的队列Queue<String> queue new LinkedList&…

使用patchelf解决vscode远程连接不支持低版本glibc的问题

使用patchelf解决vscode远程连接不支持低版本glibc的问题 目录 使用patchelf解决vscode远程连接不支持低版本glibc的问题1. 动态链接库下载2. 用 patchelf 修改 vscode-server 依赖的 glibc 版本 VScode 1.86 版本的 remote 要求 glibc 2.28 及以上&#xff0c;于是在各种旧版本…

基于RK3588多can口多串口机器人全功能板

RK3588机器人控制器有五大技术优势 1. 内置多种功能强大的嵌入式硬件引擎&#xff0c;支持8K60fps 的 H.265 和 VP9 解码器、8K30fps 的 H.264 解码器和 4K60fps 的 AV1 解码器&#xff1b;支持 8K30fps 的 H.264 和H.265 编码器&#xff0c;高质量的 JPEG 编码器/解码器&…

npm 的常见指令及用法

1、npm install moduleNames 安装Node模块 安装完毕后会产生一个node_modules目录&#xff0c;其目录下就是安装的各个node模块。 2、npm view moduleNames 查看项目package.json文件中正在使用的插件版本 3、npm list 查看当前目录下已安装的node包 4、package.jso…

不显示excel中零值方法

excel中想让数字0不显示的方法如下&#xff1a; √去掉则数字格式0不再显示 。若找不到此项&#xff0c;运行以下代码即可&#xff1a; Sub 去除excel中零值() ActiveWindow.DisplayZeros False 不显示零值 End Sub altf11打开vba idea&#xff0c;插入->模块&#xff…

UniRepLKNet:一种用于音频、视频、点云、时间序列和图像识别的通用感知大核卷积神经网络

论文: https://arxiv.org/abs/2311.15599 模型: https://huggingface.co/DingXiaoH/UniRepLKNet/tree/main 主页&#xff1a;https://invictus717.github.io/UniRepLKNet/ contribution 提出了四条guide line用于设计大核CNN架构模型&#xff0c;用于图像识别&#xff0c;语…

elementui日期时间选择框自定义组件

1.需求场景 业务中需要&#xff0c;日期选择框方便客户对日期的选择&#xff08;比如近5天&#xff0c;本周&#xff0c;本月&#xff0c;本年等等&#xff09;&#xff0c;并按小时展示。 2.组件代码MyDateTimeChange.vue <template><el-date-pickerv-model"…