2017-09-25 3 views
0

j'ai l'application de formes de xamarin qui supportent la notification, je l'ai fait dans android avec le récepteur de diffusion maintenant je dois faire la notification dans ios! , mon service dépend de API REST donc je veux que chaque application ios de 60 secondes exécute une requête HTTP et obtienne des données puis la montre comme notification, j'ai cherché pendant plusieurs jours mais je ne peux pas atteindre mon approche? si cela est impossible puis-je utiliser nuget ou quelque chose comme ça dans le projet ios seulement "dans la solution de formulaires de xamarin" ou non?créer une notification locale dans xamarin ios avec la demande http

 content = new UNMutableNotificationContent(); 
     content.Title = "Notification Title"; 
     content.Subtitle = "Notification Subtitle"; 
     content.Body = "This is the message body of the notification."; 
     content.Badge = 1; 
     content.CategoryIdentifier = "message"; 

     var trigger = UNTimeIntervalNotificationTrigger.CreateTrigger(60, true); 


     var requestID = "sampleRequest"; 
     var request = UNNotificationRequest.FromIdentifier(requestID, content, trigger); 

     UNUserNotificationCenter.Current.AddNotificationRequest(request, (err) => 
     { 
      if (err != null) 
      { 
       // Do something with error... 
      } 
     }); 

Répondre

0

Voici mon code pour générer une notification locale sur iOS

var alertsAllowed = false; 
UNUserNotificationCenter.Current.GetNotificationSettings((settings) => 
{ 
    alertsAllowed = (settings.AlertSetting == UNNotificationSetting.Enabled); 
}); 

if (alertsAllowed) 
{ 
    var content = new UNMutableNotificationContent(); 
    content.Title = "Incident Recorder"; 
    content.Subtitle = "Not Synchronised"; 
    content.Body = "There are one or more new incidents that have not been synchronised to the server."; 

    var trigger = UNTimeIntervalNotificationTrigger.CreateTrigger(5, false); 

    var requestID = "sampleRequest"; 
    var request = UNNotificationRequest.FromIdentifier(requestID, content, trigger); 

    UNUserNotificationCenter.Current.AddNotificationRequest(request, (err) => 
    { 
     if (err != null) 
     { 
      Console.WriteLine(err.LocalizedFailureReason); 
     } 
    }); 
} 

Le premier paramètre est CreateTrigger combien de temps avant la notification est générée. Je remarque que tu as 60 dans le tien. Gardez également à l'esprit qu'une notification ne s'affichera pas si votre application est mise au premier plan.

+0

alors où puis-je appeler ma requête http pour importer des données du serveur automatiquement après 60 ans comme moi ou 5 comme vous? –

+0

Le 60 (ou 5) n'a rien à voir avec la fréquence à laquelle vous importez des données du serveur. Il est combien de temps pour retarder l'affichage de la notification. Vous devriez appeler le serveur à partir de votre code partagé (PCL) en utilisant éventuellement une minuterie. Une fois que vous avez des données, appelez le code spécifique à la plate-forme pour déclencher une notification. –

+0

dans la plate-forme Android il ya un service qui exécute le code en arrière-plan sans minuterie, je me demande s'il y a quelque chose comme ça dans ios, de toute façon je pense que je ne peux pas expliquer la deuxième question mr steve –