2023-02-27 00:36:02 +08:00
2023-02-24 21:24:21 +08:00
2023-02-27 00:14:31 +08:00
2023-02-27 00:27:32 +08:00
2023-02-27 00:27:32 +08:00
2023-02-24 21:24:21 +08:00
2023-02-24 21:24:21 +08:00
2022-11-10 10:47:12 +08:00
2022-07-26 16:28:37 +08:00
2022-07-26 16:28:37 +08:00
2022-07-26 18:11:24 +08:00
2023-02-24 21:24:21 +08:00
2022-07-26 18:11:24 +08:00
2023-02-24 21:24:21 +08:00
2023-02-27 00:36:02 +08:00

link_kit

Flutter plugin for Deep Link/App Link/Universal Links.

⚠️⚠️⚠️

  • link_kit 1.0.0 配置并不与 0.0.x 兼容,请手动删除 0.0.x 配置
  • 因为 Android 的 manifestPlaceholders 能力有限,又懒得写需要兼容各版本的 Gradle 插件,所以默认只支持配置一个 DeepLink/AppLink/UniversalLink

Android

文档

配置

# 不需要做任何额外接入工作
# 配置已集成到脚本里

测试

# Deep Link
adb shell am start -a android.intent.action.VIEW -c android.intent.category.BROWSABLE -d "flk:///power"
# App Link
adb shell am start -a android.intent.action.VIEW -c android.intent.category.BROWSABLE -d "https://www.yourdomain.com/universal_link/example_app/link_kit/power"

iOS

文档

Support Universal Links

配置

# 不需要做任何额外接入工作
# 配置已集成到脚本里

测试

# Deep Link
xcrun simctl openurl booted flk:///power
# Universal Links
xcrun simctl openurl booted https://www.yourdomain.com/universal_link/example_app/link_kit/power

Flutter

配置

dependencies:
  link_kit: ^${latestTag}
#  link_kit:
#    git:
#      url: https://github.com/RxReader/link_kit.git

link_kit:
  deep_link: ${your deep link scheme}:///
  android:
    app_link: https://${your applinks domain}/universal_link/${example_app}/link_kit/ # 可选配置
  ios:
    universal_link: https://${your applinks domain}/universal_link/${example_app}/link_kit/ # 可选配置

安装仅iOS

# step.1 安装必要依赖
sudo gem install plist
# step.2 切换工作目录,插件里为 example/ios/,普通项目为 ios/
cd example/ios/
# step.3 执行脚本
pod install

编码

    // ⚠️⚠️⚠️
    // 因为 Android 层实现调用了 queryIntentActivities会被小米误判【获取安装列表】
    // 所以 linkClickStream 和 getInitialLink 必须在同意「隐私协议」后才能调用
    _linkClickSubs = LinkKitPlatform.instance.linkClickStream().listen((String event) {
      if (kDebugMode) {
        print('linkClick: $event');
      }
      setState(() {
        _link = event;
      });
    });
    LinkKitPlatform.instance.getInitialLink().then((String? value) {
      if (kDebugMode) {
        print('initialLink: $value');
      }
      setState(() {
        _link = value;
      });
    });
Description
Flutter plugin for App/Deep Link.
Readme Apache-2.0 182 KiB
Languages
Dart 100%