Xamarin.Forms
Pushmeldingen
Zoeken…
Opmerkingen
AWS Simple Notification Service Lingo:
Eindpunt - Het eindpunt kan een telefoon, e-mailadres of wat dan ook zijn, het is wat AWS SNS terug kan slaan met een melding
Onderwerp - In wezen een groep die al uw eindpunten bevat
Abonneren - U meldt uw telefoon / client aan om meldingen te ontvangen
Generieke Push Notification Lingo:
APNS - Apple Push Notification Service. Apple is de enige die pushmeldingen kan verzenden. Daarom voorzien we onze app van het juiste certificaat. We bieden AWS SNS het certificaat dat Apple ons geeft om SNS te machtigen om namens ons een kennisgeving naar APNS te verzenden.
GCM - Google Cloud Messaging lijkt erg op APNS. Google is de enige die direct pushmeldingen kan verzenden. Dus registreren we onze app eerst in GCM en overhandigen we ons token aan AWS SNS. SNS verwerkt alle complexe zaken die te maken hebben met GCM en de gegevens verzenden.
iOS-voorbeeld
- U hebt een ontwikkelapparaat nodig
- Ga naar je Apple Developer-account en maak een inrichtingsprofiel met Push-meldingen ingeschakeld
- U hebt een manier nodig om uw telefoon op de hoogte te stellen (AWS, Azure..etc) We zullen hier AWS gebruiken
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"
});
}
}