Flutter中如何使用app_links打开一个app_link
我在Flutter项目中集成了app_links插件,但无法成功通过URL打开应用。具体表现为:点击网页链接时始终跳转到浏览器而非我的Flutter应用。已在AndroidManifest.xml和Info.plist中配置了相关路由,也确认了深度链接格式为https://mydomain.com/path。请问还需要哪些关键配置?是否需要在MaterialApp或CupertinoApp中额外设置路由?期待分享完整的实现示例代码。
2 回复
在Flutter中使用app_links库打开App Link,步骤如下:
- 添加依赖:在
pubspec.yaml中添加app_links。 - 配置Android和iOS:分别设置
AndroidManifest.xml和Info.plist以支持深度链接。 - 处理链接:在代码中使用
AppLinks获取并解析链接,例如:final appLink = await AppLinks().getInitialAppLink(); if (appLink != null) { // 处理链接逻辑 } - 监听链接:使用
AppLinks的uriLinkStream监听动态链接。
完成后,即可通过App Link启动应用并传递参数。
更多关于Flutter中如何使用app_links打开一个app_link的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中使用app_links包打开应用链接(App Link)的步骤如下:
-
添加依赖:在
pubspec.yaml中添加依赖:dependencies: app_links: ^5.0.1 -
配置Android:
- 在
android/app/src/main/AndroidManifest.xml中,为相关Activity添加intent过滤器:
<activity ...> <intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="https" android:host="yourdomain.com" /> </intent-filter> </activity> - 在
-
配置iOS:
- 在
ios/Runner/Info.plist中添加:
<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLName</key> <string>yourdomain.com</string> <key>CFBundleURLSchemes</key> <array> <string>https</string> </array> </dict> </array> - 在
-
Flutter代码实现:
- 初始化并监听链接:
import 'package:app_links/app_links.dart'; final AppLinks _appLinks = AppLinks(); // 获取初始链接(应用未运行时点击链接启动) Uri? initialLink = await _appLinks.getInitialAppLink(); // 监听链接变化(应用运行时点击链接) _appLinks.uriLinkStream.listen((Uri uri) { // 处理链接,例如导航到对应页面 print('收到链接: $uri'); }); -
处理链接:根据URI路径或参数执行相应操作,例如导航到特定页面。
注意事项:
- 确保你的域名配置了Digital Asset Links(Android)和Apple App Site Association(iOS)以支持深度链接。
- 测试时使用真实设备,模拟器可能无法正确处理链接。
通过以上步骤,即可在Flutter应用中处理并打开App Link。

