简介
app_links_ohos 是 app_links[1] 在 OpenHarmony 平台的实现,为鸿蒙应用提供深度链接(Deep Links)和应用链接(App Links)处理能力。支持 HTTPS URL 打开 App、自定义 Scheme 等场景,是鸿蒙化 Flutter 应用中处理外部链接跳转的标准方案。
仓库地址:harmonycandies/app_links_ohos[2] 当前版本: app_links_ohos: ^0.2.0(需搭配app_links: ^6.4.0)
安装
在 pubspec.yaml 中添加依赖:
dependencies:
app_links: ^6.4.0
app_links_ohos: ^0.2.0
然后执行 flutter pub get。
鸿蒙端配置
在 OpenHarmony 项目的 module.json5 文件中添加 uris 配置,声明你的 App 能处理的链接规则:
{
"module": {
"abilities": [
{
"skills": [
{
"uris": [
{
"scheme": "https",
"host": "example.com",
"path": "/open/*"
},
{
"scheme": "myapp",
"host": "open",
"path": "product"
}
]
}
]
}
]
}
}
更多细节请参考 鸿蒙 App Linking 开发文档[3]。
核心 API
app_links_ohos 的使用方式与 app_links 完全一致,最核心的 API 就是 uriLinkStream:
import 'package:app_links/app_links.dart';
final appLinks = AppLinks();
// 监听所有链接事件(包括初始链接和后续链接)
final sub = appLinks.uriLinkStream.listen((Uri uri) {
// 处理跳转逻辑
// 如导航到对应页面
print('收到链接: $uri');
});
// 在 dispose 时取消订阅
@override
void dispose() {
sub.cancel();
super.dispose();
}
快速集成
在 App 启动时尽早初始化 AppLinks 实例(建议放在 main 函数或 App 入口中),以确保能捕获到冷启动时的初始链接:
void main() {
WidgetsFlutterBinding.ensureInitialized();
final appLinks = AppLinks();
runApp(MyApp(appLinks: appLinks));
}
在页面中使用:
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key});
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
late final AppLinks _appLinks;
StreamSubscription<Uri>? _sub;
@override
void initState() {
super.initState();
_appLinks = AppLinks();
_sub = _appLinks.uriLinkStream.listen((uri) {
// 解析 uri 并进行页面导航
_handleDeepLink(uri);
});
}
void _handleDeepLink(Uri uri) {
// 自定义链接处理逻辑
}
@override
void dispose() {
_sub?.cancel();
super.dispose();
}
}
总结
app_links_ohos 为鸿蒙 Flutter 应用提供了一站式的深度链接解决方案。只需简单配置 module.json5,再通过 uriLinkStream 监听链接事件,即可轻松实现 App 外部链接跳转。配合 app_links 主库,一套代码同时支持 Android、iOS、鸿蒙等多个平台,是跨平台深度链接的最佳选择 🌟
引用链接
[1]app_links: https://pub.dev/packages/app_links
[2]harmonycandies/app_links_ohos: https://github.com/harmonycandies/app_links_ohos
[3]鸿蒙 App Linking 开发文档: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/app-linking-startup-V5
夜雨聆风