Flutter安装来源追踪插件install_referrer_plugin的使用

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

安装来源追踪插件install_referrer_plugin 的使用 #

install_referrer_plugin 是一个用于在 Android 上获取安装来源信息的 Flutter 插件。

特性 #

  • 检索安装来源详情,例如:
    • 推荐 URL
    • 点击时间戳
    • 安装时间戳
  • 易于与现有的 Flutter 项目集成。

安装 #

要使用此插件,请在你的 pubspec.yaml 文件中添加 install_referrer_plugin 作为依赖项。

yaml #

dependencies:
  flutter:
    sdk: flutter
  install_referrer_plugin: ^0.0.2

使用 #

导入该包并使用提供的方法来获取安装来源信息。

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:install_referrer_plugin/install_referrer_plugin.dart';

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

class MyApp extends StatelessWidget { const MyApp({super.key});

@override Widget build(BuildContext context) { return const MaterialApp( home: ReferrerHome(), ); } }

class ReferrerHome extends StatefulWidget { const ReferrerHome({super.key});

@override // ignore: library_private_types_in_public_api _ReferrerHomeState createState() => _ReferrerHomeState(); }

class _ReferrerHomeState extends State<ReferrerHome> { String? _referrer;

@override void initState() { super.initState(); _getReferrer(); }

Future<void> _getReferrer() async { // 调用插件方法获取安装来源信息 String? referrer = await InstallReferrerPlugin.getInstallReferrer(); setState(() { _referrer = referrer; }); }

@override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text(‘安装来源示例’), ), body: Center( child: Text( _referrer != null ? ‘来源: $_referrer’ : ‘未找到来源’, ), ), ); } }


更多关于Flutter安装来源追踪插件install_referrer_plugin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter安装来源追踪插件install_referrer_plugin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中,install_referrer_plugin 用于追踪应用的安装来源。尽管这个插件现在可能已经被其他更现代的插件(例如 package_info_plus 或 Google 的 install_referrer SDK)所取代,但以下是关于如何使用 install_referrer_plugin 的一个示例代码案例。

请注意,由于插件的更新和Flutter生态的变化,以下代码可能需要根据当前插件的版本和API进行调整。

1. 添加依赖

首先,在你的 pubspec.yaml 文件中添加 install_referrer_plugin 依赖(请注意,如果插件已经迁移到 null safety,你可能需要查找其最新版本):

dependencies:
  flutter:
    sdk: flutter
  install_referrer_plugin: ^x.y.z  # 替换为最新版本号

然后运行 flutter pub get 来获取依赖。

2. 导入插件

在你的 Dart 文件中导入插件:

import 'package:install_referrer_plugin/install_referrer_plugin.dart';

3. 使用插件获取安装来源

以下是一个简单的例子,展示如何获取安装来源信息:

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

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String? referrerInfo;

  @override
  void initState() {
    super.initState();
    _getInstallReferrer();
  }

  Future<void> _getInstallReferrer() async {
    try {
      final InstallReferrerPlugin referrerPlugin = InstallReferrerPlugin();
      final String? referrer = await referrerPlugin.getInstallReferrer();
      final String? utmSource = await referrerPlugin.getInstallReferrer utm_source;
      final String? utmMedium = await referrerPlugin.getInstallReferrer utm_medium;
      final String? utmCampaign = await referrerPlugin.getInstallReferrer utm_campaign;
      
      // 注意:以上 getInstallReferrer 的参数可能是错误的,因为实际的 API 可能不支持这种直接获取 utm 参数的方式。
      // 你可能需要使用其他方法或解析 referrer 字符串本身。
      
      // 假设我们只能通过 referrer 字符串获取所有 utm 参数
      setState(() {
        referrerInfo = 'Referrer: $referrer\nUTM Source: $utmSource\nUTM Medium: $utmMedium\nUTM Campaign: $utmCampaign';
      });
    } catch (e) {
      print('Error getting install referrer: $e');
      setState(() {
        referrerInfo = 'Error getting install referrer.';
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Install Referrer Info'),
        ),
        body: Center(
          child: Text(referrerInfo ?? 'Loading...'),
        ),
      ),
    );
  }
}

注意:上面的代码示例中有几个潜在的问题和不准确之处:

  1. InstallReferrerPlugin 的实际 API 可能不支持直接获取 utm_sourceutm_mediumutm_campaign。通常,这些信息会包含在 referrer 字符串中,你可能需要自行解析这个字符串。

  2. 由于 Google Play 商店和其他应用商店对安装来源信息的限制,获取完整的安装来源信息可能变得越来越困难。

  3. install_referrer_plugin 可能已经被更新或替代,因此建议查看最新的 Flutter 社区插件或官方文档以获取最新和最佳实践。

由于这些原因,上面的代码应该被视为一个概念性的示例,而不是一个可以直接在生产环境中使用的完整解决方案。在实际应用中,你可能需要调整代码以适应最新的插件 API 和应用商店的限制。

回到顶部