Skip to content

Native

Shiny.PushNuGet package Shiny.Push
Shiny.Hosting.MauiNuGet package Shiny.Hosting.Maui

The default provider uses Firebase on Android and APNs on iOS directly. No additional NuGet package is needed beyond Shiny.Push.

services.AddPush<MyPushDelegate>();

Firebase Cloud Messaging can be used as a unified provider across both platforms.

NuGet: Shiny.Push.FirebaseMessaging

// Auto-config from google-services.json
services.AddPushFirebaseMessaging<MyPushDelegate>();

Create your own push provider by implementing IPushProvider.

public class MyPushProvider : IPushProvider
{
#if ANDROID
public async Task<string> Register(string nativeToken)
{
// Register with your backend, return your provider token
var providerToken = await MyBackend.RegisterToken(nativeToken);
return providerToken;
}
#elif IOS
public async Task<string> Register(NSData nativeToken)
{
var tokenString = nativeToken.ToPushTokenString();
var providerToken = await MyBackend.RegisterToken(tokenString);
return providerToken;
}
#endif
public async Task UnRegister()
{
await MyBackend.UnregisterToken();
}
}
services.AddPush<MyPushDelegate>();
services.AddShinyService<MyPushProvider>();