Xamarin.Forms
Notifications push
Recherche…
Remarques
AWS Simple Notification Service Lingo:
Point de terminaison - Le point d'extrémité peut être un téléphone, une adresse électronique ou autre, c'est ce que AWS SNS peut envoyer avec une notification.
Topic - Essentiellement un groupe contenant tous vos points de terminaison
S'abonner - Vous vous inscrivez sur votre téléphone / client pour recevoir des notifications
Lingo de notification push générique:
APNS - Apple Push Notification Service. Apple est le seul à pouvoir envoyer des notifications push. C'est pourquoi nous fournissons notre application avec le certificat approprié. Nous fournissons à AWS SNS le certificat que Apple nous fournit pour autoriser SNS à envoyer une notification à APNS en notre nom.
GCM - Google Cloud Messaging est très similaire à APNS. Google est le seul à pouvoir envoyer directement des notifications push. Nous enregistrons donc d'abord notre application dans GCM et remettons notre jeton à AWS SNS. SNS gère tous les problèmes complexes liés à GCM et à l'envoi des données.
Exemple iOS
- Vous aurez besoin d'un périphérique de développement
- Accédez à votre compte de développeur Apple et créez un profil de configuration avec les notifications Push activées.
- Vous aurez besoin d'un moyen de notifier votre téléphone (AWS, Azure..etc) Nous utiliserons AWS ici
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"
});
}
}