EnumPushNotifications 1.1.0
dotnet add package EnumPushNotifications --version 1.1.0
NuGet\Install-Package EnumPushNotifications -Version 1.1.0
<PackageReference Include="EnumPushNotifications" Version="1.1.0" />
paket add EnumPushNotifications --version 1.1.0
#r "nuget: EnumPushNotifications, 1.1.0"
// Install EnumPushNotifications as a Cake Addin #addin nuget:?package=EnumPushNotifications&version=1.1.0 // Install EnumPushNotifications as a Cake Tool #tool nuget:?package=EnumPushNotifications&version=1.1.0
FCM Push Notifications for .NET Core 🚀
Send push notifications to Android, iOS and Web clients with this simple to use FCM .NET Core library.
Install via NuGet or .NET CLI 📥
NuGet:
PM> Install-Package EnumPushNotifications
.NET CLI:
dotnet add package EnumPushNotifications
How to use 🏃
Use the library's
IServiceCollection
extension methodAddFcmPushNotifications
and provide it an instnace ofIConfiguration
likeservices.AddFcmPushNotifications(Configuration);
Ensure that in
appsettings.json
you have aFcmCredentials
valid JSON object defined with a 'server key' (make sure you use the legacy server key) and 'sender id' which you can get from your FCM Console project.Example
appsettings.json
file content withFcmCredentials
setup:{ "FcmCredentials": { "serverKey": "<put_your_FCM_legacy_server_key_here>", "senderId": "<put_your_FCM_sender_id_here>", } }
Resolve an instance of
IPushNotificationSender
in your class to an example variable likeIPushNotificationSender _pusher;
If you are using constructor injection, then your C# constructor could look like this:
public MyController(IPushNotificationsSender pusher) { _pusher = pusher; }
Use the local
_pusher
variable you just resolved to call Push Notification methods like the following:await _pusher.PushMessageToDevice(new FcmPushNotification(title, body), deviceToken);
The
deviceToken
variable provided toPushMessageToDevice
method is a string value which represents a valid registration ID of a device registered for receiving push notifications.
If you are wondering how to setup your client devices then follow Google's instructions on: https://firebase.google.com/docs/cloud-messaging/
Setup platform specific push notification properties
You can find a detailed list of all available properties with descriptions on the official doucmentation page: https://firebase.google.com/docs/cloud-messaging/http-server-ref
Setup iOS specific properties:
var iosMsg = new FcmPushNotification(title, body)
{
IOSBadge = 5,
IOSSubtitle "Important news you should read!"
};
Setup Android specific properties:
var androidMsg = new FcmPushNotification(title, body)
{
AndroidColor = "#rrggbb",
AndroidOrWebIcon = "myicon",
AndroidTag = "tag 123",
AndroidChannelId = "MyChannel"
};
Useful links 🔗
End-To-End solution with Android project in it: https://www.codeproject.com/Articles/1206069/Sending-Push-Notifications-to-Android-with-Csharp
Current Rest HTTP (lacks internet examples): https://firebase.google.com/docs/cloud-messaging/send-message
Legacy HTTP API that is used to implement the current version of the library (also is bragged and used around the interwebs with examples): https://firebase.google.com/docs/cloud-messaging/http-server-ref
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- EnumPushNotifications.Utils (>= 0.0.4)
- Microsoft.Extensions.DependencyInjection (>= 2.0.0)
- Microsoft.Extensions.Logging (>= 2.0.0)
- Newtonsoft.Json (>= 11.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
- Added additional and common push notification properties: collapse_key, priority, content_available, mutable_content - Added platform specific JSON payload properties:badge, subtitle, android_channel_id, tag, icon, color
- Changed the AdditionalData property of FcmPushNotification to dynamic type