Flutter 鸿蒙(OpenHarmony)化适配实战:从零实现「点击按钮退出应用」插件
本文详细介绍了如何在Flutter中实现鸿蒙系统的应用退出功能。从环境搭建开始,包括DevEco Studio安装、Flutter-oh配置、JDK17设置等准备工作;到创建Flutter插件项目并添加OHOS平台支持;最后通过Dart代码实现exit(0)的退出功能,并在示例应用中添加Exit按钮进行测试。整个过程经过真机/模拟器验证,确保稳定可靠,为Flutter开发者迁移鸿蒙应用提供了可直接
一、引言
随着鸿蒙生态的持续发展,Flutter 作为跨平台开发的主流框架,对鸿蒙系统的支持也越来越完善。很多 Flutter 开发者在迁移鸿蒙应用时,都会遇到「应用退出」的基础需求:点击按钮直接关闭应用,回到系统桌面。
本文将基于我的完整实操过程,从零带你实现一个 Flutter 鸿蒙适配的「退出应用」插件,全程覆盖环境搭建、代码实现、报错排查、最终验证,所有步骤均经过真机 / 模拟器验证,可直接复现
二、环境准备
在开始之前,请确保你的开发环境满足以下要求

flutter-oh 环境搭建(完整无遗漏)
1.1 下载 DevEco Studio 和模拟器
- 去华为官网下载 DevEco Studio:
https://developer.huawei.com/consumer/cn/download - 一路默认安装,记住安装路径(如
C:\Program Files\Huawei\DevEco Studio) - 打开 DevEco → 右上角点 Device Manager → 点 + New Emulator
- 选择 Phone 类型 → 选 Huawei_Phone(HarmonyOS 6.0.2(22)) → 点下载按钮(↓)
- 等待镜像下载完成,点击「Next」→「Finish」,启动模拟器,保持后台运行
- 记住模拟器设备 ID 例:
127.0.0.1:5555
1.2 下载 OpenHarmony 版 Flutter
- 浏览器访问 OpenHarmony 官方 Flutter 发布页(https://gitcode.com/openharmony-tpc/flutter_flutter/tree/oh-3.35.7-dev)克隆你所需的flutter

用命令提示符运行,把刚刚复制的克隆链接直接黏贴并Enter运行即可
利用flutter --version(cmd内)进行验证,如果出现版本号如Flutter 3.7.12...即为成功 - 解压到
C:\Users\用户名\flutter-oh目录,Flutter 根目录为C:\Users\用户名\flutter-oh\flutter - 把
C:\Users\用户名\flutter-oh\flutter\bin加入系统环境变量Path
1.3 下载 JDK 17
- 去 Oracle 官网下载 JDK 17,一路默认安装,记住安装路径(如
C:\Program Files\Java\jdk-17.0.18) - 配置环境变量
JAVA_HOME指向 JDK 根目录,%JAVA_HOME%\bin加入Path
1.4 配置系统环境变量(必须重启电脑才生效)、
如何打开环境变量
打开此电脑,右键此电脑
点击属性
点击高级系统设置
点击环境变量
在系统变量中编辑或新建你需要的变量
变量名变量值(替换成你的真实路径)
JAVA_HOME C:\Program Files\Java\jdk-17.0.18
TOOL_HOME C:\Program Files\Huawei\DevEco Studio
DEVECO_SDK_HOME%TOOL_HOME%\sdk
HOS_SDK_HOMEC:\Users\用户名\AppData\Local\OpenHarmony\Sdk\20\20、
具体路径

(如果没有下载API工具请全部勾选后点击Apply等待下载完毕)
PUB_CACHE C:\Users\用户名\pub_cache
PUB_HOSTED_URL https://pub.flutter-io.cn
FLUTTER_STORAGE_BASE_URL https://storage.flutter-io.cn
Path(在Path内编辑的,上面的大多都是新建的变量)
%JAVA_HOME%\bin
%TOOL_HOME%\tools\ohpm\bin
%TOOL_HOME%\tools\hvigor\bin
C:\Users\用户名\flutter-oh\flutter\bin
C:\Users\用户名\AppData\Local\OpenHarmony\Sdk\20\20\toolchains(此为上方一个附带插图对应的变量)
1.5 检查环境(重启后在cmd执行)
java -version
flutter --version
hdc list targets
flutter doctor -v
✅ 正常结果:所有命令无报错,hdc list targets 显示 127.0.0.1:5555(你的模拟器设备ID),flutter doctor -v 显示 OpenHarmony 工具链正常
三、建立 flutter_exit_app
第一步:打开 CMD,进入你的用户目录
cd C:\Users\19068
第二步:重新创建插件项目(官方标准命令)
flutter create --template=plugin flutter_exit_app
第三步:进入项目
cd flutter_exit_app
第四步:检查是否正常(测试环境)
flutter --version
✅ 成功标志
CMD 会显示:
Flutter 3.27.5-ohos-1.0.4 • channel [user-branch]
四、给空插件 加上 OHOS 鸿蒙平台支持
第一步:进入插件目录(cmd内)
cd flutter_exit_app
第二步:添加 OHOS 平台(命令写死,直接复制)
flutter create -t plugin --platforms=ohos .
五、更新 pubspec.yaml 文件,让插件正式支持 OHOS 平台
打开 C:\Users\用户名\flutter_exit_app\pubspec.yaml,找到 flutter → plugin → platforms 部分,添加 OHOS 配置:
flutter:
plugin:
platforms:
# 这里会自动有其他平台(比如ios/android),你只需要加上ohos
ohos:
pluginClass: FlutterExitAppPlugin
保存文件(Ctrl+S),红色提示就会消失,插件就正式支持 OHOS 了
例:

六、打开DevEco Studio的ohos工程并运行模拟器
第一步:用 DevEco Studio 打开 OHOS 工程
- 打开 DevEco Studio → 点击 Open...
- 选择路径:
C:\Users\用户名\flutter_exit_app\example\ohos(这是你的鸿蒙工程根目录) - 等待项目加载完成(底部进度条走完)
第二步:打开模拟器
1.找到并点击项目页面右上角的No Devices
2.点击Device Manager
3.运行你之前下好的模拟器
例
模拟器启动后,回到 CMD 运行:
cd C:\Users\19068\flutter_exit_app\example
flutter run -d 127.0.0.1:5555
(此处的127.0.0.1:5555应为你自己的模拟器地址)
运行完毕后,可能会出现下面这种情况
只需要根据命令符所说的照做即可
七、补全配置 + 实现功能
第一步:修改插件核心代码(实现退出功能)
打开 lib/flutter_exit_app.dart,全选删除原有代码,粘贴这段纯 Dart 实现:
import 'dart:io';
class FlutterExitApp {
/// 点击按钮后退出应用
static void exitApp() {
// 系统标准退出指令,鸿蒙上直接生效
exit(0);
}
}
第二步:修改示例界面代码(添加 Exit 按钮)
打开 example/lib/main.dart,全选删除原有代码,粘贴这段:
import 'package:flutter/material.dart';
import 'package:flutter_exit_app/flutter_exit_app.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Exit App Test'),
),
body: Center(
child: ElevatedButton(
// 点击触发退出
onPressed: FlutterExitApp.exitApp,
child: const Text('Exit'),
),
),
),
);
}
}
第三步:运行测试
在 CMD 里执行:
cd example
flutter run -d 127.0.0.1:5555
(如果无法正常运行,请检查你的模拟器窗口是否打开)
打开界面示例
八、效果展示
- 应用启动后,界面显示「Exit」按钮
- 点击按钮,应用立即关闭,直接回到鸿蒙模拟器桌面
- 重复点击,效果一致,无卡顿、无崩溃,完全符合预期

九、总结
本次 Flutter 鸿蒙适配实战,我们从零实现了「点击按钮退出应用」的插件,核心亮点如下:
- 跨平台兼容:
exit(0)同时支持 Android、iOS、鸿蒙等多平台,一套代码多端运行 - 全程避坑:汇总了所有常见报错的解决方案,可直接复现
对于 Flutter 鸿蒙迁移的开发者来说,「应用退出」是最基础的需求,本文的实现方式是最稳定、最易维护的方案,可直接集成到现有 Flutter 鸿蒙项目中
更多推荐



所有评论(0)