A consistent and easy way to show local notifications in Xamarin and Windows apps.
- Available on NuGet: https://www.nuget.org/packages/Xam.Plugins.Notifier/
- Install in your PCL project and platform client projects.
Platform Support
Platform | Version |
---|---|
Xamarin.iOS | 7.0+ |
Xamarin.Android | 3.0+ (API 11+) |
Xamarin.Mac | 10.7+ |
Windows (UWP) | 10.0+ |
Call CrossLocalNotifications.Current
from any project or PCL to gain access to APIs.
CrossLocalNotifications.Current.Show("title", "body");
CrossLocalNotifications.Current.Show("title", "body", 101, DateTime.Now.AddSeconds(5));
CrossLocalNotifications.Current.Cancel(101);
Some platforms require certain permissions or settings before it will display notifications.
You must enable notifications in the .appmanifest file by setting the "Toast capable" property to "Yes".
You must get permission from the user to allow the app to show local notifications.
To do so, include the following code in the FinishedLaunching()
method of AppDelegate
:
if (UIDevice.CurrentDevice.CheckSystemVersion(10, 0))
{
// Ask the user for permission to get notifications on iOS 10.0+
UNUserNotificationCenter.Current.RequestAuthorization(
UNAuthorizationOptions.Alert | UNAuthorizationOptions.Badge | UNAuthorizationOptions.Sound,
(approved, error) => { });
}
else if (UIDevice.CurrentDevice.CheckSystemVersion(8, 0))
{
// Ask the user for permission to get notifications on iOS 8.0+
var settings = UIUserNotificationSettings.GetSettingsForTypes(
UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound,
new NSSet());
UIApplication.SharedApplication.RegisterUserNotificationSettings(settings);
}
On iOS 10.0+ in order to specify how notifications are handled when the app is active you must create a delegate class
that subclasses UNUserNotificationCenterDelegate
and assign it to the UNUserNotificationCenter
.
For more details see the sample included in this repository and check out Xamarin's iOS 10 UserNotifications framework documentation.
Currently, if the phone is re-booted then the pending notifications are not sent, you should save them out to settings and re-send on re-boot.
You can set the notification Icon by setting the following property from inside your Android project:
LocalNotificationsImplementation.NotificationIconId = Resource.Drawable.YOU_ICON_HERE
Licensed under MIT see License file