3

Développer l'application mobile à l'aide des formulaires Xamarin. Pour la notification push, nous utilisons Amazon Simple Notification Service (SNS).Push Notification à l'aide Amazon SNS - id Device

Xamarin.Andriod: 1. Lors de l'installation de l'application, nous avons utilisé l'extrait de code ci-dessous pour enregistrer l'identifiant de l'appareil dans l'Amazone SNS méthode OnCreate de MainActivity. Il fonctionne très bien

using (Intent intent = new Intent("com.google.android.c2dm.intent.REGISTER")) 
       { 
        string senders = AmazonUtils.GoogleConsoleProjectId; 
        intent.SetPackage("com.google.android.gsf"); 
        intent.PutExtra("app", PendingIntent.GetBroadcast(this, 0, new Intent(), 0)); 
        intent.PutExtra("sender", senders); 
        this.StartService(intent); 
       } 
  1. Chaque fois que l'application ouvre la vérification de l'ID du périphérique correspondant est enregistré dans l'Amazonie SNS. En raison de cette application prend 4 secondes supplémentaires pour vérifier ce processus et après cette page est en cours de chargement.

  2. Est-ce que nous devons vérifier l'appareil est de vous inscrire ou non pour chaque fois que l'application ouvre?. Est-ce la norme pour la notification push?

Cordialement, Cheran

Répondre

1

Installez Xam.Plugins.Settings.

Il ajoutera une classe d'aide appelée Settings

Dans cette classe, vous devez ajouter:

private const string IsRegisteredKey = "registered_key"; 
private static readonly bool IsRegisteredDefault = false; 

//Then adding this property 
public static bool IsRegistered 
{ 
    get 
    { 
     return AppSettings.GetValueOrDefault(IsRegisteredKey, IsRegisteredDefault); 
    } 
    set 
    { 
     AppSettings.AddOrUpdateValue(IsRegisteredKey, value); 
    } 
} 

Ensuite, dans votre appel code cette propriété, comme celui-ci:

using YourProjectNameSpace.Droid.Helper 

.... 

if(!Settings.IsRegistered) 
{ 
    using (Intent intent = new Intent("com.google.android.c2dm.intent.REGISTER")) 
    { 
     string senders = AmazonUtils.GoogleConsoleProjectId; 
     intent.SetPackage("com.google.android.gsf"); 
     intent.PutExtra("app", PendingIntent.GetBroadcast(this, 0, new Intent(), 0)); 
     intent.PutExtra("sender", senders); 
     this.StartService(intent); 
    } 
    Settings.IsRegistered = true; 
}