Xamarin.Forms
Le notifiche push
Ricerca…
Osservazioni
Lingo di notifica semplice AWS:
Endpoint : l'endpoint può essere un telefono, un indirizzo e-mail o qualsiasi altra cosa, è ciò che AWS SNS può rispondere con una notifica
Argomento - Essenzialmente un gruppo che contiene tutti i tuoi endpoint
Abbonati : registrati al tuo telefono / cliente per ricevere notifiche
Lingo di notifica push generico:
APNS - Servizio di notifica push Apple. Apple è l'unica in grado di inviare notifiche push. Questo è il motivo per cui forniamo la nostra app con il certificato appropriato. Forniamo a AWS SNS il certificato che Apple ci fornisce per autorizzare SNS a inviare una notifica a APNS per nostro conto.
GCM - Google Cloud Messaging è molto simile a APNS. Google è l'unico che può inviare direttamente notifiche push. Pertanto, per prima cosa registriamo la nostra app in GCM e consegniamo il nostro token ad AWS SNS. SNS gestisce tutte le cose complesse che riguardano GCM e inviano i dati.
Esempio di iOS
- Avrai bisogno di un dispositivo di sviluppo
- Vai al tuo account sviluppatore Apple e crea un profilo di provisioning con le notifiche push abilitate
- Avrai bisogno di una sorta di modo per notificare il tuo telefono (AWS, Azure..etc) Useremo AWS qui
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"
});
}
}