Skip to content
A plugin for Xamarin and Windows - it unites Crouton (Android), TWMessageBarManager (iOS) and my toast notificator for WP8.
Branch: master
Clone or download
Latest commit 8132380 Mar 4, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.nuget Updated nuspec Mar 4, 2018
.vs/config Merge remote-tracking branch 'refs/remotes/EgorBo/master' Jan 30, 2016
Misc Updated nuspec Mar 4, 2018
Sample Bug fixes Jan 14, 2018
Toasts.Forms.Plugin.Abstractions ConcurrentDictionary used and counter locked Mar 3, 2018
Toasts.Forms.Plugin.Droid Ensuring ChannelId set correctly Mar 4, 2018
Toasts.Forms.Plugin.UWP ConcurrentDictionary used and counter locked Mar 3, 2018
Toasts.Forms.Plugin.iOS New nuspec Mar 4, 2018
.gitattributes
.gitignore Bug fixes Jan 14, 2018
LICENSE Initial commit Jan 4, 2015
README.md Updated nuspec Mar 4, 2018
Toasts.Forms.Plugin.sln

README.md

Toasts Notification Plugin for Xamarin and Windows

A simple way of showing notifications inside your Xamarin or Windows application. In windows phone world we call them "Toasts". This plugin uses the platforms native toast / notification API's.

Setup and usage

Setup

Platform Support

Platform Supported Version
Xamarin.iOS No
Xamarin.iOS Unified Yes iOS 10+
Xamarin.Android Yes API 16+ (AppCompat Only)
Windows Phone Silverlight No
Windows Phone RT No
Windows Store RT No
Windows 10 UWP Yes 10+
Xamarin.Mac No

Now uses .NET Standard 1.3, does support PCL 111.

iOS Support Version 3+ of this plugin requires iOS10 to display the toast notification. If you require support for iOS7+ then please use version 2.0.4.

I you want to use the latest plugin with a version less than iOS 10 you can hook into the ReceivedLocalNotification in the AppDelegate to display an Alert.

Setup

In your iOS, Android, WinRT and UWP projects please call:

DependencyService.Register<ToastNotification>(); // Register your dependency
ToastNotification.Init();

// If you are using Android you must pass through the activity
ToastNotification.Init(this);

If you are using Xamarin Forms, you must do this AFTER your call to Xamarin.Forms.Init();

Usage

Use dependency service in order to resolve IToastNotificator.

var notificator = DependencyService.Get<IToastNotificator>();

var options = new NotificationOptions()
            {
                Title = "Title",
                Description = "Description"
            };

var result = await notificator.Notify(options);

The result that is returned is a NotificationResult with an Action inside with one of the following values.

[Flags]
public enum NotificationAction
{
    Timeout = 1, // Hides by itself
    Clicked = 2, // User clicked on notification
    Dismissed = 4, // User manually dismissed notification
    ApplicationHidden = 8, // Application went to background
    Failed = 16 // When failed to display the toast
}

If you want the Clicked NotificationAction you must set IsClickable = true in the NotificationOptions.

Permissions

In iOS you must request permission to show local notifications first since it is a user interrupting action.

// Request Permissions
if (UIDevice.CurrentDevice.CheckSystemVersion(10, 0))
{
    // Request Permissions
    UNUserNotificationCenter.Current.RequestAuthorization(UNAuthorizationOptions.Alert | UNAuthorizationOptions.Badge | UNAuthorizationOptions.Sound, (granted, error) =>
    {
        // Do something if needed
    });
}
else if (UIDevice.CurrentDevice.CheckSystemVersion(8, 0))
{
    var notificationSettings = UIUserNotificationSettings.GetSettingsForTypes(
    UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, null);

    app.RegisterUserNotificationSettings(notificationSettings);
}

Contributors

Thanks!

License

Licensed under MIT

You can’t perform that action at this time.