Xamarin.Forms
Powiadomienia push
Szukaj…
Uwagi
AWS Simple Lingo Service Lingo:
Punkt końcowy - punktem końcowym może być telefon, adres e-mail lub cokolwiek innego, to jest to, co AWS SNS może odpowiedzieć za pomocą powiadomienia
Temat - Zasadniczo grupa, która zawiera wszystkie punkty końcowe
Subskrybuj - rejestrujesz swój telefon / klient, aby otrzymywać powiadomienia
Ogólne powiadomienie push Lingo:
APNS - usługa powiadomień push Apple. Apple jest jedynym, który może wysyłać powiadomienia push. Dlatego zapewniamy naszej aplikacji odpowiedni certyfikat. Zapewniamy AWS SNS certyfikat, który Apple zapewnia nam, aby upoważnić SNS do wysłania powiadomienia do APNS w naszym imieniu.
GCM - Google Cloud Messaging jest bardzo podobny do APNS. Google jest jedynym, który może bezpośrednio wysyłać powiadomienia push. Dlatego najpierw rejestrujemy naszą aplikację w GCM i przekazujemy nasz token AWS SNS. SNS obsługuje wszystkie złożone sprawy związane z GCM i przesyłaniem danych.
Przykład iOS
- Będziesz potrzebował urządzenia programistycznego
- Przejdź do swojego konta programisty Apple i utwórz profil informacyjny z włączonymi powiadomieniami push
- Będziesz potrzebować jakiegoś sposobu, aby powiadomić swój telefon (AWS, Azure..etc). Użyjemy tutaj AWS
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
//after typical Xamarin.Forms Init Stuff
//variable to set-up the style of notifications you want, iOS supports 3 types
var pushSettings = UIUserNotificationSettings.GetSettingsForTypes(
UIUserNotificationType.Alert |
UIUserNotificationType.Badge |
UIUserNotificationType.Sound,
null );
//both of these methods are in iOS, we have to override them and set them up
//to allow push notifications
app.RegisterUserNotificationSettings(pushSettings); //pass the supported push notifications settings to register app in settings page
}
public override async void RegisteredForRemoteNotifications(UIApplication application, NSData token)
{
AmazonSimpleNotificationServiceClient snsClient = new AmazonSimpleNotificationServiceClient("your AWS credentials here");
// This contains the registered push notification token stored on the phone.
var deviceToken = token.Description.Replace("<", "").Replace(">", "").Replace(" ", "");
if (!string.IsNullOrEmpty(deviceToken))
{
//register with SNS to create an endpoint ARN, this means AWS can message your phone
var response = await snsClient.CreatePlatformEndpointAsync(
new CreatePlatformEndpointRequest
{
Token = deviceToken,
PlatformApplicationArn = "yourARNwouldgohere" /* insert your platform application ARN here */
});
var endpoint = response.EndpointArn;
//AWS lets you create topics, so use subscribe your app to a topic, so you can easily send out one push notification to all of your users
var subscribeResponse = await snsClient.SubscribeAsync(new SubscribeRequest
{
TopicArn = "YourTopicARN here",
Endpoint = endpoint,
Protocol = "application"
});
}
}