# native_to_flutter_example **Repository Path**: android.long/native_to_flutter_example ## Basic Information - **Project Name**: native_to_flutter_example - **Description**: Flutter与原生交互 Flutter发送消息到原生 视图中展示 ,点击原生视图中的按钮发送消息到Flutter展示 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-10 - **Last Updated**: 2026-04-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # native_to_flutter 一个 Flutter 插件示例项目,演示如何在 Flutter 中嵌入原生平台视图(PlatformView),并实现 Flutter 与原生平台的双向通信。 ## 功能特性 - ✅ **PlatformView 嵌入** - 在 Flutter 中显示原生 Android/iOS 按钮 - ✅ **双向通信** - Flutter ↔ 原生平台互相发送消息 - ✅ **跨平台支持** - Android (Java) 和 iOS (Swift) 双平台实现 - ✅ **详细注释** - 适合 Flutter 初学者学习插件开发 ## 项目结构 ``` native_to_flutter/ ├── lib/ │ └── native_to_flutter.dart # Flutter 端代码(PlatformView Widget) ├── android/src/main/java/.../ │ ├── NativeButtonView.java # Android 原生视图 │ ├── NativeButtonViewFactory.java # Android 视图工厂 │ └── NativeToFlutterPlugin.java # Android 插件主类 ├── ios/Classes/ │ └── NativeToFlutterPlugin.swift # iOS 插件和视图实现 └── example/ └── lib/main.dart # 示例应用 ``` ## 技术要点 ### Flutter 端 - `AndroidView` / `UiKitView` - 嵌入原生视图 - `MethodChannel` - 与原生平台通信 - `GlobalKey` - 获取 State 调用原生方法 ### Android 端 (Java) - `PlatformView` - 实现原生视图接口 - `MethodChannel.MethodCallHandler` - 处理 Flutter 消息 - `LinearLayout` - 原生布局容器 ### iOS 端 (Swift) - `FlutterPlatformView` - 实现平台视图协议 - `FlutterMethodChannel` - 通信通道 - `Auto Layout` - 约束布局 ## 使用示例 ```dart import 'package:native_to_flutter/native_to_flutter.dart'; // 创建 GlobalKey 用于调用原生方法 final nativeButtonKey = GlobalKey(); // 使用 NativeButton Widget NativeButton( key: nativeButtonKey, onMessage: (String message) { // 接收原生发送的消息 print('收到原生消息: $message'); }, width: 250, height: 120, ) // 发送消息到原生 nativeButtonKey.currentState?.sendMessageToNative('Hello Native!'); ``` ## 运行示例 ```bash # 进入示例目录 cd example # 运行(使用 fvm 管理 Flutter 版本) fvm flutter run ``` ## 学习资源 - [Flutter 插件开发文档](https://flutter.dev/to/develop-plugins) - [PlatformView 官方指南](https://docs.flutter.dev/platform-integration/android/platform-views) - [MethodChannel 通信](https://docs.flutter.dev/platform-integration/platform-channels) ## 环境要求 - Flutter SDK: ^3.10.4 - Android: minSdk 21 - iOS: 13.0+ ## 许可证 MIT License