如何将 Mixpanel 集成到 Flutter 应用程序中?

问题描述 投票:0回答:2

我按照此处给出的步骤进行操作 添加后

  import 'package:mixpanel_flutter/mixpanel_flutter.dart';
  ...
  class _YourClassState extends State<YourClass> {
  Mixpanel mixpanel;

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

  Future<void> initMixpanel() async {
   mixpanel = await Mixpanel.init("Your Mixpanel Token", optOutTrackingDefault: false);
 }
...

终端给我一个错误提示

Field 'mixpanel' should be initialized because its type 'Mixpanel' doesn't allow null.
Mixpannel mixpannel;
failed to compile application

我已插入 mixpannel 令牌。 在 Mixpannel 中,我启动了一个测试项目,为所有事件添加了事件图表。

android flutter mixpanel
2个回答
0
投票

您检查过 mixpanel-flutter

给出的示例吗

您可以为其创建实例:

class MixpanelManager {
  static Mixpanel? _instance;

  static Future<Mixpanel> init() async {
    if (_instance == null) {
      _instance = await Mixpanel.init("YOUR_PROJECT_TOKEN",
          optOutTrackingDefault: false);
    }
    return _instance!;
  }
}

你也可以同样使用(在其他课程中):

  late final Mixpanel _mixpanel;

  @override
  initState() {
    super.initState();
    _initMixpanel();
  }

  Future<void> _initMixpanel() async {
    _mixpanel = await MixpanelManager.init();
  }

查看示例了解更多信息。


0
投票

正如 Pratik Butani 所说,我们可以创建一个混合面板实例,然后在 main.dart 文件中初始化它,并在整个应用程序中使用它。

class MixpanelManager {
static Mixpanel? _instance;
static String projectToken = "your_token";
static Future<Mixpanel> initMixpanel() async {
if (_instance == null) {
  _instance = await Mixpanel.init(projectToken, 
trackAutomaticEvents: true);
}
return _instance!;
}

static Mixpanel get instance {
assert(_instance != null, "Mixpanel must be 
initialized first");
return _instance!;
}
}

在上面的代码中,你可以看到我为实例做了一个get方法。 并在 main.dart 文件中初始化它

      Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await MixpanelManager.initMixpanel();
runApp(YourApp());
}

然后您可以在任何地方使用这个单个实例,如下所示。

MixpanelManager.instance.track('log in: 
${session.user.email}',
      properties: {"user": "${session.user.email}", 
  "login": "true"});
//or without properties
MixpanelManager.instance.track('going to Accounts 
Screen');
© www.soinside.com 2019 - 2024. All rights reserved.