flutter_bugfender 2.1.0 icon indicating copy to clipboard operation
flutter_bugfender: ^2.1.0 copied to clipboard

Flutter plugin to enable Bugfender reporting (iOS, Android and web support).

flutter_bugfender #

A Bugfender Wrapper plugin (implementing native code) for Flutter Projects.

Note: This plugin was provided by the community, hence it is published "AS IS", our support might not always be able to help you.

Using the package #

Edit pubspec.yaml and add add flutter_bugfender to dev_dependencies:

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_bugfender: ^2.0.1

Then run flutter pub get (or ‘Packages Get’ in IntelliJ) to download the package.

Edit lib/main.dart and add an import:

import 'package:flutter_bugfender/flutter_bugfender.dart';

And in your main application builder:

FlutterBugfender.init("YOUR_APP_KEY");

There are other init options:

  • apiUri and baseUri: alternative URLs for on-premise installations
  • maximumLocalStorageSize: maximum size the local log cache will use, in bytes
  • printToConsole: whether to print to console or not
  • enableUIEventLogging: enable automatic logging of user interactions for native elements.
  • enableCrashReporting: enable automatic crash reporting for native crashes. To report Dart exceptions see this.
  • enableAndroidLogcatLogging: enable automatic logging of logcat (Android only)
  • overrideDeviceName: specify a name for the device
  • version: app version identifier (Web specific)
  • build: app build identifier (Web specific)

You can also call:

FlutterBugfender.log("Working fine!");
FlutterBugfender.fatal("Fatal sent!");
FlutterBugfender.error("Error sent!");
FlutterBugfender.warn("Warning sent!");
FlutterBugfender.info("Info sent!");
FlutterBugfender.debug("Debug sent!");
FlutterBugfender.trace("Trace sent!");
FlutterBugfender.sendLog(
 line: 42,
 method: "someMethod()",
 file:"someFile",
 level: LogLevel.info,
 tag: "Custom tag",
 text: "This is a custom log"
);
FlutterBugfender.setDeviceString("user.email", "example@example.com");
FlutterBugfender.setDeviceInt("user.id", 32);
Flu tterBugfender.setDeviceFloat("user.pi", 3.14);
FlutterBugfender.setDeviceBool("user.enabled", true);
FlutterBugfender.removeDeviceKey("user.pi");
FlutterBugfender.sendCrash("Test Crash", "Stacktrace here!");
FlutterBugfender.sendIssue("Test Issue", "Issue value goes here!");
FlutterBugfender.sendUserFeedback("Test user feedback", "User feedback details here!");
FlutterBugfender.setForceEnabled(true);
FlutterBugfender.forceSendOnce();
FlutterBugfender.getDeviceUri());
FlutterBugfender.getSessionUri());
FlutterBugfender.getUserFeedback()); // Show a screen which asks for feedback

Report Dart and Flutter Exceptions #

To be able to report flutter exception you'll need to wrap runApp(new MyApp()) on your main function like this:

FlutterBugfender.handleUncaughtErrors(() async {
  runApp(new MyApp());
});

Previous code is just syntactic sugar for the following code that you can use indistinctly if you need more control on error handling:

// Capture Flutter Error
FlutterError.onError = (FlutterErrorDetails details) async {
  FlutterError.presentError(details);
  await FlutterBugfender.sendCrash(details.exception.toString(), details.stack?.toString() ?? "");
};
// Capture Dart Exceptions 
runZonedGuarded(() {
  runApp(new MyApp());;
}, (Object error, StackTrace stack) async {
  await FlutterBugfender.sendCrash(error.toString(), stack.toString());
});

Using this package in a web project #

The plugin assumes the Bugfender JS library is already loaded. You may load it by adding the following snippet to your index.html file:

<script defer src="https://js.bugfender.com/bugfender-v2.js"></script>
11
likes
110
pub points
81%
popularity

Publisher

verified publisher iconbugfender.com

Flutter plugin to enable Bugfender reporting (iOS, Android and web support).

Homepage
Repository (GitHub)

Documentation

API reference

License

Icon for licenses.BSD-3-Clause (LICENSE)

Dependencies

flutter, flutter_web_plugins, js, meta

More

Packages that depend on flutter_bugfender