FlutterTPC Dart SDK 在鸿蒙上的使用指南
FlutterTPC Dart SDK是为HarmonyOS优化的Dart开发工具包,提供核心功能支持。包含js、meta、vm等关键包,其中js包支持Dart与JavaScript互操作。通过Git方式引入依赖,在pubspec.yaml中配置Git URL即可使用。SDK提供完整API调用示例,包括调用JS函数、使用命名空间、传递对象等。建议通过flutter命令验证依赖关系,确保兼容性。该S
插件介绍
FlutterTPC Dart SDK 是一个为 HarmonyOS 平台优化的 Dart 开发工具包,它基于官方 Dart SDK 进行了自定义修改和适配,旨在为开发者提供在 HarmonyOS 上开发 Flutter 应用时所需的核心 Dart 功能和工具。
这个 SDK 包含了多个核心 Dart 包,其中最常用的包括:
- js 包:提供 Dart 与 JavaScript 之间的互操作能力,允许开发者在 Dart 代码中调用 JavaScript API,或在 JavaScript 中调用 Dart 代码。
- meta 包:提供元数据注解,用于标记代码的特殊用途和行为。
- vm 包:提供与 Dart 虚拟机交互的能力。
- dds 包:Dart Development Service,用于调试和分析 Dart 应用。
- kernel 包:提供 Dart 核心库的内核表示。
这些包共同构成了一个完整的 Dart 开发环境,为 HarmonyOS 上的 Flutter 开发提供了坚实的基础。
如何使用插件
包的引入
由于这是一个自定义修改版本的 Dart SDK,需要通过 Git 形式引入依赖。下面以 js 包为例,介绍如何在 HarmonyOS Flutter 项目中引入该包。
在项目的 pubspec.yaml 文件中,添加以下依赖配置:
dependencies:
js:
git:
url: "https://gitcode.com/openharmony-tpc/flutter_packages.git"
path: "packages/js/js"
API 的调用
js 包的使用示例
js 包提供了 Dart 与 JavaScript 之间的互操作能力,以下是几个常见的使用场景:
调用 JavaScript 函数
()
library stringify;
import 'package:js/js.dart';
// 调用 JavaScript 的 `JSON.stringify(obj)`
('JSON.stringify')
external String stringify(Object obj);
void main() {
var obj = {'name': 'HarmonyOS', 'version': 2.0};
var jsonStr = stringify(obj);
print(jsonStr); // 输出: {"name":"HarmonyOS","version":2.0}
}
使用 JavaScript 命名空间和类
('google.maps')
library maps;
import 'package:js/js.dart';
// 调用 JavaScript getter `google.maps.map`
external Map get map;
// `Map` 构造函数调用 JavaScript `new google.maps.Map(location)`
()
class Map {
external Map(Location location);
external Location getLocation();
}
// `Location` 构造函数调用 JavaScript `new google.maps.LatLng(...)`
('LatLng')
class Location {
external Location(num lat, num lng);
}
向 JavaScript 传递对象字面量
()
library print_options;
import 'package:js/js.dart';
void main() {
printOptions(Options(responsive: true));
}
()
external printOptions(Options options);
()
class Options {
external bool get responsive;
// 必须有一个带命名参数的无名工厂构造函数
external factory Options({bool responsive});
}
让 Dart 函数可被 JavaScript 调用
()
library callable_function;
import 'package:js/js.dart';
/// 允许将函数赋值为可从 `window.functionName()` 调用
('functionName')
external set _functionName(void Function() f);
/// 允许从 Dart 调用已赋值的函数
()
external void functionName();
void _someDartFunction() {
print('Hello from Dart on HarmonyOS!');
}
void main() {
_functionName = allowInterop(_someDartFunction);
// JavaScript 代码现在可以调用 `functionName()` 或 `window.functionName()`
}
其他常用包的基本使用
meta 包
import 'package:meta/meta.dart';
class User {
final String name;
final int age;
const User(this.name, this.age);
}
void _internalMethod() {
// 仅内部使用的方法
}
vm 包
import 'package:vm/vm.dart' as vm;
Future<void> analyzeDartCode(String dartCode) async {
var result = await vm.compileToKernel(
dartCode,
vm.CompileToKernelOptions(),
);
// 分析编译结果
}
包的验证
为了确保引入的包能够正常工作,建议在项目中运行以下命令进行验证:
flutter pub get
flutter pub outdated
flutter pub deps
这些命令可以帮助你:
- 获取最新的依赖
- 检查是否有过时的依赖
- 查看依赖树,了解包之间的依赖关系
总结
FlutterTPC Dart SDK 为 HarmonyOS 上的 Flutter 开发提供了完整的 Dart 开发环境。通过本文的介绍,你应该已经了解了:
-
插件介绍:FlutterTPC Dart SDK 包含多个核心 Dart 包,如 js、meta、vm 等,为 HarmonyOS 上的 Flutter 开发提供支持。
-
包的引入:由于是自定义修改版本,需要通过 Git 形式引入依赖,在
pubspec.yaml中配置 Git URL 和路径。 -
API 的调用:以 js 包为例,介绍了如何调用 JavaScript 函数、使用 JavaScript 命名空间和类、传递对象字面量以及让 Dart 函数可被 JavaScript 调用。
-
包的验证:使用 Flutter 命令验证引入的包是否正常工作。
通过使用 FlutterTPC Dart SDK,开发者可以在 HarmonyOS 平台上充分利用 Dart 和 Flutter 的强大功能,开发出高质量的应用程序。
注意事项
- 由于这是一个自定义修改版本的 SDK,请确保与官方版本的兼容性。
- 在使用 js 包时,请注意 Dart 和 JavaScript 之间的语义差异。
- 定期更新依赖,以获取最新的功能和 bug 修复。
- 如果在使用过程中遇到问题,可以参考官方文档或在社区寻求帮助。
更多推荐

所有评论(0)