App Badge
App badges display a count number on your application icon, providing users with visual feedback about unread notifications, pending tasks, or other relevant information when the app is not in focus.
Implementation
- Integrate with Your View Controller
- Add the following method to
MainViewController.swift
to handle app badge updates:
- Add the following method to
swift
@objc func updateApplicationBadgeCount(_ params: [String: String]) {
let badge: Int = Int(params["badge"] ?? "0") ?? 0
let center = UNUserNotificationCenter.current()
Task {
let settings = await center.notificationSettings()
switch settings.authorizationStatus {
case .authorized:
Task {
try await center.setBadgeCount(badge)
}
case .notDetermined:
// Request permission if not determined
let granted = try? await center.requestAuthorization(options: [.badge])
if granted == true {
Task {
try await center.setBadgeCount(badge)
}
} else {
print("User denied badge permission")
}
default:
print("Notification authorization denied or restricted")
}
}
}
- Trigger the Share Sheet in JavaScript
- To update the application badge count, call the native
updateApplicationBadgeCount
method:
- To update the application badge count, call the native
javascript
enClose({
nativeCall: 'updateApplicationBadgeCount',
data: {
badge: 5
}
});
Clear Badge
javascript
enClose({
nativeCall: 'updateApplicationBadgeCount',
data: {
badge: 0
}
});
Important Notes
- Badge permissions are part of the notification permissions. Users must grant notification permissions for badges to work.
- Setting the badge count to 0 will clear the badge from your app icon.
- Badge counts should be meaningful and not used excessively.
- Badge counts only appear when the app is not in the foreground.
- Some users may disable badge notifications in their device settings.