flutter_badge_manager_foundation 0.2.2
flutter_badge_manager_foundation: ^0.2.2 copied to clipboard
iOS and macOS implementation of the flutter_badge_manager plugin.
flutter_badge_manager_foundation #
The iOS and macOS implementation of flutter_badge_manager.
Usage #
This is the federated foundation (Darwin) implementation. You normally just depend on flutter_badge_manager and this package is pulled in automatically. You do not need to add it to pubspec.yaml unless you want to import it directly.
If you do import it explicitly, add to your pubspec.yaml:
dependencies:
flutter_badge_manager_foundation: ^<latest>
Then:
import 'package:flutter_badge_manager_foundation/flutter_badge_manager_foundation.dart';
final supported = await FlutterBadgeManagerFoundation.instance.isSupported();
if (supported) {
await FlutterBadgeManagerFoundation.instance.update(3);
await FlutterBadgeManagerFoundation.instance.remove();
}
iOS #
Badge visibility can still be affected by the app's notification settings. For the tested iOS flow, request badge notification authorization on iOS versions below 26 before relying on badge display or persistence. If your app also posts notifications, do that through your normal notification flow.
Add (if you need remote notifications background refresh):
<!-- ios/Runner/Info.plist -->
<key>UIBackgroundModes</key>
<array>
<string>remote-notification</string>
</array>
Minimum iOS version: 13.0.
macOS #
Requires user notification authorization for badge display.
Optional Info.plist key to ensure banner style:
<!-- macos/Runner/Info.plist -->
<key>NSUserNotificationAlertStyle</key>
<string>banner</string>
Minimum macOS version: 10.15.
API (via main plugin) #
FlutterBadgeManagerFoundation.instance.isSupported()FlutterBadgeManagerFoundation.instance.update(int count)(count >= 0)FlutterBadgeManagerFoundation.instance.remove()
Negative counts throw PlatformException(code: 'invalid_args').
Notes #
- This package uses a generated Pigeon host API for Dart-to-native calls.
- Badge changes are applied via
UIApplication.shared.applicationIconBadgeNumberon all supported iOS versions and additionally synchronized throughUNUserNotificationCenter.setBadgeCounton iOS 16+ so the system badge state persists after the app leaves the foreground. On macOS the package usesNSApplication.shared.dockTile.badgeLabel. isSupported()reports whether the Darwin platform implementation supports badges at all. Notification permission still affects whether the badge is shown, but it does not change capability detection.- Permission prompts are not triggered by this package. Request notification authorization only if your app's own notification flow needs it.
- The package example requests badge permission through
flutter_local_notificationsso it behaves predictably on iOS and macOS versions that require an explicit notification authorization flow before showing badge changes. On tested iOS versions below 26, that permission request is required for reliable badge behavior.
License #
MIT License (see LICENSE).