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,步骤如下:

  1. 添加依赖:在pubspec.yaml中添加app_links
  2. 配置Android和iOS:分别设置AndroidManifest.xmlInfo.plist以支持深度链接。
  3. 处理链接:在代码中使用AppLinks获取并解析链接,例如:
    final appLink = await AppLinks().getInitialAppLink();
    if (appLink != null) {
      // 处理链接逻辑
    }
    
  4. 监听链接:使用AppLinksuriLinkStream监听动态链接。

完成后,即可通过App Link启动应用并传递参数。

更多关于Flutter中如何使用app_links打开一个app_link的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中使用app_links包打开应用链接(App Link)的步骤如下:

  1. 添加依赖:在pubspec.yaml中添加依赖:

    dependencies:
      app_links: ^5.0.1
    
  2. 配置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>
    
  3. 配置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>
    
  4. Flutter代码实现

    • 初始化并监听链接:
    import 'package:app_links/app_links.dart';
    
    final AppLinks _appLinks = AppLinks();
    
    // 获取初始链接(应用未运行时点击链接启动)
    Uri? initialLink = await _appLinks.getInitialAppLink();
    
    // 监听链接变化(应用运行时点击链接)
    _appLinks.uriLinkStream.listen((Uri uri) {
      // 处理链接,例如导航到对应页面
      print('收到链接: $uri');
    });
    
  5. 处理链接:根据URI路径或参数执行相应操作,例如导航到特定页面。

注意事项

  • 确保你的域名配置了Digital Asset Links(Android)和Apple App Site Association(iOS)以支持深度链接。
  • 测试时使用真实设备,模拟器可能无法正确处理链接。

通过以上步骤,即可在Flutter应用中处理并打开App Link。

回到顶部