Flutter会话管理插件session_mate的使用
Flutter会话管理插件session_mate的使用
Session Mate
Session Mate 是一款专为专业Flutter开发者设计的会话回放工具。它可以帮助你立即重现生产环境中的bug。
- 注册试用:点击这里进行早期Beta版注册。
 
开发者指南
Firebase Emulator
flutter run --dart-define-from-file=assets/environments/development.emulator.json
Firebase Cloud
flutter run --dart-define-from-file=assets/environments/development.cloud.json
配置文件示例
{
  "APP_BASE_URL": "https://www.googleapis.com",
  "APP_USE_FAKE_DATA": false,
  "SESSION_MATE_API_KEY": "your-api-key",
  "SESSION_MATE_BASE_URL": "http://your.domain",
  "SESSION_MATE_INTEGRATION_TEST_BACKEND_ONLY": false,
  "SESSION_MATE_INTEGRATION_TEST_LOCAL_ONLY": false,
  "SESSION_MATE_INTEGRATION_TEST_UI_ONLY": false,
  "SESSION_MATE_INTEGRATION_TEST": false,
  "SESSION_MATE_LOG_NETWORK_EVENTS": false,
  "SESSION_MATE_LOG_RAW_NETWORK_EVENTS": false,
  "SESSION_MATE_RECORD_SESSION": true,
  "SESSION_MATE_REPLAY_SESSION": false,
  "SESSION_MATE_SANDBOX_MODE": false,
  "SESSION_MATE_VERBOSE_LOGS": false
}
示例代码
import 'dart:async';
import 'package:bookshelf/app/app.bottomsheets.dart';
import 'package:bookshelf/app/app.dialogs.dart';
import 'package:bookshelf/app/app.locator.dart';
import 'package:bookshelf/app/app.router.dart';
import 'package:flutter/material.dart';
import 'package:session_mate/session_mate.dart';
import 'package:stacked_services/stacked_services.dart';
const _apiKey = bool.hasEnvironment('SESSION_MATE_API_KEY')
    ? String.fromEnvironment('SESSION_MATE_API_KEY')
    : null;
const _logNetworkEvents =
    bool.fromEnvironment('SESSION_MATE_LOG_NETWORK_EVENTS');
const _logRawNetworkEvents =
    bool.fromEnvironment('SESSION_MATE_LOG_RAW_NETWORK_EVENTS');
Future<void> main() async {
  if (!kReplaySession) {
    WidgetsFlutterBinding.ensureInitialized();
  }
  await setupSessionMate();
  await setupLocator();
  setupDialogUi();
  setupBottomSheetUi();
  SessionMateCrashMonitor.monitor(const MainApp());
}
class MainApp extends StatelessWidget {
  const MainApp({super.key});
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      initialRoute: Routes.startupView,
      onGenerateRoute: StackedRouter().onGenerateRoute,
      navigatorKey: StackedService.navigatorKey,
      navigatorObservers: [
        StackedService.routeObserver,
        SessionMateNavigatorObserver.instance,
      ],
      builder: (context, child) => SessionMateBuilder(
        apiKey: _apiKey,
        logNetworkEvents: _logNetworkEvents,
        logRawNetworkEvents: _logRawNetworkEvents,
        minimumStartupTime: 60000,
        verboseLogs: true,
        child: child!,
      ),
      theme: ThemeData(
        useMaterial3: true,
        brightness: Brightness.dark,
        textSelectionTheme: const TextSelectionThemeData(
          cursorColor: Colors.white,
        ),
        inputDecorationTheme: const InputDecorationTheme(
          border: InputBorder.none,
          filled: true,
          fillColor: Color(0FF232228),
        ),
        scaffoldBackgroundColor: const Color(0xFF113111B),
        textTheme: const TextTheme(
          bodyMedium: TextStyle(fontSize: 14),
          displayLarge: TextStyle(fontSize: 72, fontWeight: FontWeight.bold),
          titleLarge: TextStyle(fontSize: 26, fontWeight: FontWeight.bold),
          titleSmall: TextStyle(fontWeight: FontWeight.bold),
        ),
      ),
    );
  }
}
更多关于Flutter会话管理插件session_mate的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
        
          1 回复
        
      
      
        
        
      
            
            
            

