Shiny.NET
Getting Started

You may ask "what does local notifications" have to do with device or background services? Well.... turns out quite a bit. You need a way of letting your users know that you've done something in the background. Maybe your job ran and determined that you need to do something OR you connected to a BLE peripheral... who knows, but you'll definitely need local notifications at some point well using Shiny

|Area|Info| |---|---| |Description|Local Notifications| |Service|Shiny.Notifications.INotificationManager |NuGet|| |Static Generated Class|ShinyNotifications

using Microsoft.Extensions.DependencyInjection;
using Shiny;

namespace YourNamespace
{
    public class YourShinyStartup : ShinyStartup
    {
        public override void ConfigureServices(IServiceCollection services, IPlatform platform)
        { 
            
<p>services.UseNotifications&lt;Shiny.Notifications.INotificationDelegate&gt;();</p>
<p>services.UseNotifications();
services.UseNotifications 
        }
    }
}

Minimum Version: 8.0

Minimum Version: 10

No Special Configuration Required

iOS Specifics

There isn't anything specific to setting up local notifications on iOS. However, iOS has one specific rule - While the application is running in the FOREGROUND, notifications will not be displayed. You are responsible for notifying your users of actions happening while your app is running.

Android Specifics

Android has many different customization points - please review the Android Specifics Documentation

Notifications

First rule, as with any Shiny service. Run RequestAccess

var result = await NotificationManager.RequestAccess();
if (result == PermissionState.Available) {
    // ... do something
}

Send a Notification

Scheduling a Notification

Getting A List of Pending Notifications

Cancelling Individual or All Pending Notifications

Notification Responses

using System.Threading.Tasks;
using Shiny.Notifications;

public class NotificationDelegate : INotificationDelegate
{
    public async Task OnEntry(NotificationResponse response)
    {
    }
}