Flutter应用性能监控与分析插件countly_flutter_np的使用

Flutter应用性能监控与分析插件countly_flutter_np的使用

Countly Flutter SDK - No Push

本仓库包含Countly Flutter SDK,可用于集成到移动Flutter应用程序中。Countly Flutter SDK旨在与Countly Lite、Countly Flex、Countly Enterprise一起使用。

什么是Countly?

Countly是一款产品分析解决方案和创新推动器,帮助团队跟踪产品性能和客户旅程及行为,适用于移动、Web和桌面应用。通过确保隐私设计,Countly允许您创新并提升您的产品,以提供个性化和定制化的客户体验,并实现关键业务和收入目标。

  • 问题或功能请求? 加入Countly社区的Discord服务器。
  • 寻找Countly服务器? 访问Countly服务器仓库。
  • 寻找其他Countly SDKs? 查看所有Countly SDKs的概述。

集成Countly SDK到项目中

有关如何使用此SDK的详细描述,请参阅我们的文档。

要了解如何将SDK添加到项目中,请参阅文档的这一部分。

您可以在此部分找到项目的最小SDK集成信息。

有关此SDK的示例集成,请参见此处。

此SDK支持以下功能:

  • 分析
  • 用户资料
  • 崩溃报告
  • A/B测试
  • 性能监控
  • 反馈小部件

安装

pubspec.yaml文件的dependencies:部分中,添加以下行:

dependencies:
  countly_flutter: <latest_version>

使用

import 'package:countly_flutter_np/countly_flutter.dart';

void main() {
  runApp(MaterialApp(home: const MyApp()));
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();

    // 初始化SDK
    Countly.isInitialized().then((bool isInitialized) {
      if (!isInitialized) {
        // 创建配置,包括您的应用密钥和服务器URL
        final CountlyConfig config = CountlyConfig(SERVER_URL, APP_KEY)..setLoggingEnabled(true);
        // 在本示例中,我们启用了日志记录。对于生产环境,请禁用此选项。

        // 使用该配置初始化
        Countly.initWithConfig(config).then((value) {
            Countly.start(); // 启用自动视图跟踪
        });
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Countly 示例应用')),
      body: Center(
        child: TextButton(
          onPressed: () {
            // 记录事件
            Countly.recordEvent({'key': '基本事件', 'count': 1});
          },
          child: Text('记录事件'),
        ),
      ),
    );
  }
}

启用自动崩溃处理

// 这将自动捕获来自Flutter框架的所有错误。
final CountlyConfig config = CountlyConfig(SERVER_URL, APP_KEY)
  ..enableCrashReporting();
Countly.initWithConfig(config);

手动报告异常

// 手动向Countly报告已处理或未处理的异常/错误
Countly.logException('这是一个手动创建的异常', true, null);

记录事件

// 记录事件(用户交互)

final event = {'key': '基本事件', 'count': 1};
Countly.recordEvent({'key': '基本事件', 'count': 1});

// 您也可以使用分段记录事件
event['segmentation'] = {'国家': '土耳其', '年龄': '28'};
Countly.recordEvent({'key': '基本事件', 'count': 1});

记录视图

// 记录屏幕视图

final segmentation = {'国家': '土耳其', '年龄': '28'};

// 开始记录带分段的视图。注意:分段值是可选的。
final String? id = await Countly.instance.views.startView('首页', segmentation);

// 使用名称停止记录带分段的视图
await Countly.instance.views.stopViewWithName('首页', segmentation);

// 使用ID停止记录带分段的视图
await Countly.instance.views.stopViewWithID(id, segmentation);

// 使用分段停止记录所有视图
await Countly.instance.views.stopAllViews(segmentation);

更改设备ID

// 设备ID是用户的唯一标识符。

// 带合并更改设备ID。
// 在这里,先前设备ID关联的数据会与新ID合并。
await Countly.instance.deviceId.changeWithMerge('123456');

// 不带合并更改设备ID。
// 在这里,新的设备ID被视为新设备。
await Countly.instance.deviceId.changeWithoutMerge('123456');

获取设备ID类型

// 获取设备ID类型
final DeviceIdType? deviceIdtype = await Countly.instance.deviceId.getIDType();
// DeviceIdType: DEVELOPER_SUPPLIED, SDK_GENERATED, TEMPORARY_ID

用户资料

// 提供当前用户的信息。

final Map<String, Object> options = {
  'name': '用户姓名',
  'username': '用户名',
  'email': '用户邮箱',
  'phone': '用户联系电话',
  'gender': '用户性别',
};
Countly.instance.userProfile.setUserProperties(options);

// 将自定义属性值增加1
Countly.instance.userProfile.increment('增加');

// 将自定义属性值增加10
Countly.instance.userProfile.incrementBy('增加By', 10);

// 将自定义属性值乘以20
Countly.instance.userProfile.multiply('乘以', 20);

// 保存当前值和提供的值之间的最大值
Countly.instance.userProfile.saveMax('保存最大', 100);

// 保存当前值和提供的值之间的最小值
Countly.instance.userProfile.saveMin('保存最小', 50);

// 如果不存在则设置自定义属性值
Countly.instance.userProfile.setOnce('设置一次', '200');

// 向自定义属性数组中添加唯一值
Countly.instance.userProfile.pushUnique('添加唯一值', '早上');

// 如果不存在则向自定义属性数组中添加唯一值
Countly.instance.userProfile.push('添加值', '早上');

// 从自定义属性数组中移除值
Countly.instance.userProfile.pull('添加值', '早上');

// 发送/保存提供的值到服务器。设置值后,必须调用save()进行保存。
Countly.instance.userProfile.save();

// 清除排队的操作/修改
Countly.instance.userProfile.clear();

同意

// 为了符合数据保护法规,如GDPR,Countly Flutter SDK允许开发者根据用户同意随时启用或禁用任何功能。

// 同意值:sessions, events, views, location, crashes, attribution, users, starRating, apm, feedback, remoteConfig

// 在初始化时启用同意
final CountlyConfig config = CountlyConfig(SERVER_URL, APP_KEY)
  ..setConsentEnabled([CountlyConsent.sessions]);
Countly.initWithConfig(config);

// 或者在初始化后使用以下方法之一
// 给予多个同意
Countly.giveConsent([CountlyConsent.events, CountlyConsent.views, CountlyConsent.crashes]);

// 移除多个同意
Countly.removeConsent([CountlyConsent.events, CountlyConsent.views, CountlyConsent.crashes]);

// 给予所有同意
Countly.giveAllConsent();

// 移除所有同意
Countly.removeAllConsent();

更多关于Flutter应用性能监控与分析插件countly_flutter_np的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter应用性能监控与分析插件countly_flutter_np的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter应用中集成并使用countly_flutter_np插件进行性能监控与分析的示例代码。这个插件允许你跟踪和分析Flutter应用的性能数据。

步骤 1: 添加依赖

首先,你需要在pubspec.yaml文件中添加countly_flutter_np依赖。

dependencies:
  flutter:
    sdk: flutter
  countly_flutter_np: ^最新版本号  # 请替换为实际的最新版本号

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

步骤 2: 初始化Countly

在你的Flutter应用的入口文件(通常是main.dart)中初始化Countly。你需要提供你的Countly服务器的URL和应用的app_key。

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // 初始化Countly
  await Countly.init(
    serverUrl: 'https://你的Countly服务器URL',
    appKey: '你的AppKey',
    enableCrashReporting: true, // 是否启用崩溃报告
    enableLogging: true,        // 是否启用日志记录
  );

  runApp(MyApp());
}

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

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Countly Demo'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            // 示例:记录一个自定义事件
            Countly.recordEvent(key: 'button_pressed');
          },
          child: Text('Press Me'),
        ),
      ),
    );
  }
}

步骤 3: 使用Countly记录事件和性能数据

一旦Countly初始化完成,你就可以在应用的任何位置使用它来记录事件和性能数据。例如,记录页面视图、用户操作等。

// 记录页面视图
Countly.beginSegment('home_page');

// 用户交互事件
ElevatedButton(
  onPressed: () {
    Countly.recordEvent(key: 'user_action', segmentation: {'action': 'tap_button'});
  },
  child: Text('User Action Button'),
);

// 结束页面视图
@override
void dispose() {
  Countly.endSegment('home_page');
  super.dispose();
}

步骤 4: 查看和分析数据

在Countly仪表板上,你应该能够看到从Flutter应用收集的事件和性能数据。你可以分析这些数据来了解用户行为、应用性能和潜在问题。

注意事项

  1. 隐私政策:确保你的应用遵循相关的隐私政策和法规,告知用户你将收集哪些数据以及如何使用这些数据。
  2. 安全性:不要将敏感信息(如用户密码)发送到Countly服务器。
  3. 调试:在开发过程中,你可以通过启用日志记录来调试Countly集成。

通过上述步骤,你应该能够在Flutter应用中成功集成并使用countly_flutter_np插件进行性能监控与分析。

回到顶部