Flutter应用集成插件appcenter_sdk_flutter的使用

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

Flutter应用集成插件appcenter_sdk_flutter的使用

App Center SDK for Flutter

appcenter_sdk_flutter 插件支持Flutter应用程序中的 AnalyticsCrashes 功能。它允许开发者轻松地将App Center服务集成到他们的Flutter项目中,以便收集分析数据和监控崩溃情况。

使用方法

初始化App Center

在开始之前,请确保你已经在Microsoft App Center上创建了你的应用,并获取了唯一的APP_SECRET。接下来,在Flutter项目的入口文件中引入必要的包并初始化App Center:

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

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  // 替换为您的应用程序密钥
  await AppCenter.start(secret: '<APP-SECRET>');
  
  // 捕获Flutter错误并发送给App Center
  FlutterError.onError = (final details) async {
    await AppCenterCrashes.trackException(
      message: details.exception.toString(),
      type: details.exception.runtimeType,
      stackTrace: details.stack,
    );
  };

  runApp(const MyApp());
}

示例代码

下面是一个完整的示例代码,演示如何配置App Center以及触发异常和事件跟踪:

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

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  // 替换为您的应用程序密钥
  await AppCenter.start(secret: '<APP-SECRET>');

  // 捕获Flutter错误并发送给App Center
  FlutterError.onError = (final details) async {
    await AppCenterCrashes.trackException(
      message: details.exception.toString(),
      type: details.exception.runtimeType,
      stackTrace: details.stack,
    );
  };

  runApp(const MyApp());
}

/// MyApp widget.
class MyApp extends StatefulWidget {
  /// Initializes [key].
  const MyApp({super.key});

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

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) => MaterialApp(
        home: Scaffold(
          appBar: AppBar(
            title: const Text('App Center Sdk'),
          ),
          body: Center(
            child: Column(
              children: [
                ElevatedButton(
                  onPressed: () {
                    try {
                      int.parse('not a number'); // 触发异常
                    } catch (e, s) {
                      AppCenterCrashes.trackException(
                        message: e.toString(),
                        type: e.runtimeType,
                        stackTrace: s,
                      );
                    }
                  },
                  child: const Text('TrackException'),
                ),
                ElevatedButton(
                  onPressed: () async =>
                      await AppCenterAnalytics.trackEvent(name: 'eventName'),
                  child: const Text('TrackEvent'),
                ),
                ElevatedButton(
                  onPressed: () async =>
                      await AppCenterCrashes.generateTestCrash(),
                  child: const Text('GenerateTestCrash'),
                ),
              ],
            ),
          ),
        ),
      );
}

AppCenter相关操作

  • 启用/禁用App Center:

    await AppCenter.enable();
    await AppCenter.disable();
    final isEnabled = await AppCenter.isEnabled();
    
  • 获取安装ID和其他信息:

    final installId = await AppCenter.getInstallId();
    final isRunningInAppCenterTestCloud = await AppCenter.isRunningInAppCenterTestCloud();
    

AppCenter Analytics功能

用于记录自定义事件,帮助理解用户行为:

await AppCenterAnalytics.trackEvent(name: 'A Event', properties: {'property': 'value'}, flags: 1);
await AppCenterAnalytics.pause();
await AppCenterAnalytics.resume();
await AppCenterAnalytics.enableManualSessionTracker();
await AppCenterAnalytics.startSession();

AppCenter Crashes功能

处理应用程序崩溃问题,确保及时发现和修复错误:

await generateTestCrash();
final hasReceivedMemoryWarningInLastSession = AppCenterCrashes.hasReceivedMemoryWarningInLastSession();
final hasCrashedInLastSession = AppCenterCrashes.hasCrashedInLastSession();

// 跟踪异常时,Flutter堆栈跟踪将在App Center中显示。
await AppCenterCrashes.trackException(
  message: 'MessageException',
  type: MessageException.runtimeType,
  stackTrace: StackTrace.fromString('stackTraceString'),
  properties: {'property': 'value'},
);

通过上述步骤,你可以将appcenter_sdk_flutter成功集成到Flutter项目中,利用其强大的功能来提高应用的质量和用户体验。


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

1 回复

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


当然,以下是如何在Flutter应用中集成和使用appcenter_sdk_flutter插件的示例代码。这个插件允许你将Flutter应用与Microsoft App Center集成,以便进行崩溃报告、分析和推送通知等。

第一步:添加依赖

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

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

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

第二步:配置App Center

你需要在App Center上创建一个应用,并获取其App Secret。然后,在Flutter项目的android/app/src/main/AndroidManifest.xmlios/Runner/Info.plist文件中进行配置。

Android配置

AndroidManifest.xml中添加以下meta-data标签:

<application
    ... >
    <meta-data
        android:name="com.microsoft.appcenter.appsecret"
        android:value="YOUR_ANDROID_APP_SECRET" />
    ...
</application>

iOS配置

Info.plist中添加以下键和值:

<key>AppCenterAppSecret</key>
<string>YOUR_IOS_APP_SECRET</string>

第三步:初始化App Center

在你的Flutter应用的主入口文件(通常是lib/main.dart)中初始化App Center。

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

void main() {
  // 初始化App Center
  AppCenter.start(
    appSecretAndroid: "YOUR_ANDROID_APP_SECRET",
    appSecretiOS: "YOUR_IOS_APP_SECRET",
    enableAnalytics: true,
    enableCrashes: true
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter AppCenter 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 AppCenter Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Press the button to trigger a test crash',
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () {
                // 模拟崩溃
                AppCenter.crashes.generateTestCrash();
              },
              child: Text('Crash Now'),
            ),
          ],
        ),
      ),
    );
  }
}

第四步:运行应用

现在,你可以运行你的Flutter应用。如果你点击了“Crash Now”按钮,应用应该会崩溃,并且崩溃报告会发送到App Center。

注意事项

  1. 隐私和安全:确保你妥善保护App Secrets,不要将它们硬编码在客户端代码中。在实际应用中,你可能需要使用更安全的方式来管理这些密钥,例如使用环境变量或安全的密钥管理服务。
  2. 调试和测试:在开发和测试阶段,你可以通过App Center的仪表板来监控应用的崩溃和性能。

希望这个示例代码能够帮助你在Flutter应用中成功集成appcenter_sdk_flutter插件。

回到顶部