Flutter应用链接管理插件app_linkster的使用

发布于 1周前 作者 gougou168 来自 Flutter

Flutter应用链接管理插件app_linkster的使用

app_linkster 是一个多功能工具,用于在流行的社交媒体平台上启动深度链接。通过 app_linkster,您可以轻松地将标准网页URL转换为特定平台的深度链接,并在iOS和Android上无缝启动它们。

特性

  • 多平台支持:目前支持Facebook、Twitter、Instagram、TikTok、YouTube和LinkedIn。
  • 自动平台检测:它智能地检测平台(iOS/Android),并相应地启动深度链接。
  • 易于集成:设计为项目中的即插即用解决方案,设置简单。
  • 自定义深度链接解析:使用 DeeplinkCreator 基于给定的URL模式生成灵活的深度链接。

支持的应用

  • Facebook
  • (X) Twitter
  • Instagram
  • TikTok
  • YouTube
  • LinkedIn
  • 更多即将推出!

开始使用

先决条件

  • Dart SDK: 版本 >=3.0.5 <4.0.0
  • Flutter: 版本 >=3.0.0

安装

  1. app_linkster 添加到您的 pubspec.yaml 文件:
dependencies:
  app_linkster: ^latest_version
  1. 安装包:
$ flutter pub get
  1. 添加查询方案:
  • 对于iOS,将以下内容添加到您的 Info.plist 文件:
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fb</string>
    <string>instagram</string>
    <string>snssdk1233</string>
    <string>twitter</string>
    <string>youtube</string>
    <string>linkedin</string>
</array>
  • 对于Android,将以下内容添加到您的 AndroidManifest.xml 文件:
    <queries>
        <intent>
            <action android:name="android.intent.action.VIEW" />
            <data android:scheme="fb" />
        </intent>

        <intent>
            <action android:name="android.intent.action.VIEW" />
            <data android:scheme="snssdk1233" />
        </intent>
        <intent>
            <action android:name="android.intent.action.VIEW" />
            <data android:scheme="https" />
        </intent>
    </queries>

使用方法

  1. 导入库:
import 'package:app_linkster/app_linkster.dart';
  1. 创建 AppLinksterLauncher 实例并调用 launchThisGuy 方法:
final launcher = AppLinksterLauncher();
await launcher.launchThisGuy('https://www.facebook.com/yourProfile');

如果需要更改回退启动模式:

final launcher = AppLinksterLauncher();
await launcher.launchThisGuy('https://www.facebook.com/yourProfile', 
    fallbackLaunchMode: LaunchMode.externalApplication);

更多关于Flutter应用链接管理插件app_linkster的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter应用链接管理插件app_linkster的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter应用中使用app_linkster插件进行链接管理的代码示例。app_linkster插件(假设这是一个用于处理应用内链接的插件,请注意实际插件名称和功能可能有所不同,因为没有一个广泛知名的名为app_linkster的官方插件)通常会允许你检测、解析和响应从外部应用或网页传入的深层链接(deep links)。

首先,确保你已经在pubspec.yaml文件中添加了app_linkster(或相应的插件)依赖项:

dependencies:
  flutter:
    sdk: flutter
  app_linkster: ^x.y.z  # 替换为实际版本号

然后运行flutter pub get来安装依赖。

配置Android

android/app/src/main/AndroidManifest.xml中,确保你已经声明了接收深层链接的<intent-filter>。例如:

<activity
    android:name=".MainActivity"
    android:launchMode="singleTop"
    android:theme="@style/LaunchTheme"
    android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
    android:hardwareAccelerated="true"
    android:windowSoftInputMode="adjustResize">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <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="yourapp.com" android:pathPrefix="/deeplink" />
    </intent-filter>
</activity>

配置iOS

ios/Runner/Info.plist中,添加你的URL Scheme和相关的配置。例如:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>yourapp</string>
        </array>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
    </dict>
    <dict>
        <key>CFBundleURLName</key>
        <string>com.yourapp.deeplink</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>https</string>
        </array>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>CFBundleURLTypes</key>
        <array>
            <dict>
                <key>CFBundleURLSchemes</key>
                <array>
                    <string>yourapp.com</string>
                </array>
            </dict>
        </array>
    </dict>
</array>

注意:iOS的URL配置相对复杂,上面的配置可能需要根据实际情况进行调整。

Flutter代码

在你的Flutter代码中,你可以使用app_linkster(或相应插件)来监听和处理深层链接。以下是一个简单的示例:

import 'package:flutter/material.dart';
import 'package:app_linkster/app_linkster.dart';  // 假设这是插件的导入路径

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Deep Linking Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: DeepLinkHandler(),
    );
  }
}

class DeepLinkHandler extends StatefulWidget {
  @override
  _DeepLinkHandlerState createState() => _DeepLinkHandlerState();
}

class _DeepLinkHandlerState extends State<DeepLinkHandler> {
  @override
  void initState() {
    super.initState();
    // 监听深层链接
    AppLinkster.getInitialLink().then((initialLink) {
      if (initialLink != null) {
        // 处理从启动时传入的深层链接
        handleDeepLink(initialLink);
      }
      // 监听后续的深层链接变化
      AppLinkster.linkStream.listen((link) {
        handleDeepLink(link);
      });
    });
  }

  void handleDeepLink(String link) {
    // 根据传入的链接执行相应的操作
    print('Received deep link: $link');
    // 例如,可以导航到应用内的特定页面
    // Navigator.pushNamed(context, '/path_based_on_link');
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Deep Link Handler'),
      ),
      body: Center(
        child: Text('Waiting for deep link...'),
      ),
    );
  }
}

注意:上述代码中的AppLinkstergetInitialLinklinkStream是假设的API,实际使用时你需要参考app_linkster(或相应插件)的文档来获取正确的API名称和使用方法。

确保你已经阅读并遵循了插件的官方文档,因为不同的插件可能有不同的配置和使用方法。

回到顶部