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
iOS Specifics
Section titled “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
Section titled “Android Specifics”Android has many different customization points - please review the Android Specifics Documentation
Notifications
Section titled “Notifications”First rule, as with any Shiny service. Run RequestAccess
var result = await ShinyHost.Resolve<INotificationManager>().RequestAccess();if (result == PermissionState.Available) { // ... do something}
Send a Notification
Section titled “Send a Notification”TODO
Getting A List of Pending Notifications
Section titled “Getting A List of Pending Notifications”TODO
Cancelling Individual or All Pending Notifications
Section titled “Cancelling Individual or All Pending Notifications”TODO
Geofencing
Section titled “Geofencing”TODO
Scheduling
Section titled “Scheduling”iOS requires the ‘Time Sensitive Notification’ entitlement that is setup for your app on the Apple Developer Portal.
You must then add the following to your ‘Entitlement.plist’ or csproj file
<key>com.apple.developer.usernotifications.time-sensitive</key><true />
<!-- OR --><ItemGroup> <CustomEntitlements Include="com.apple.developer.usernotifications.time-sensitive" Type="Boolean" Value="true" /></ItemGroup>
TODO
Repeat Intervals
Section titled “Repeat Intervals”TODO
Notification Responses
Section titled “Notification Responses”using System.Threading.Tasks;using Shiny.Notifications;
public class NotificationDelegate : INotificationDelegate{ public async Task OnEntry(NotificationResponse response) { }}
Android Notification Entry
Section titled “Android Notification Entry”In order for Shiny to receive Android notification entries, you must add the following to your MainActivity.cs
file
using Android.App;using Android.Content.PM;
namespace YourNamespace;
[Activity( Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)][IntentFilter(new[] { Shiny.ShinyNotificationIntents.NotificationClickAction})]public class MainActivity : MauiAppCompatActivity{}