Exemplarische Vorgehensweise: Verwenden von lokalen Benachrichtigungen in Xamarin.iOS
In diesem Abschnitt erfahren Sie, wie Sie lokale Benachrichtigungen in einer Xamarin.iOS-Anwendung verwenden. Sie veranschaulicht die Grundlagen des Erstellens und Veröffentlichens einer Benachrichtigung, die beim Empfang der App eine Benachrichtigung anzeigt.
Wichtig
Die Informationen in diesem Abschnitt beziehen sich auf iOS 9 und früher, es wurde hier gelassen, um ältere iOS-Versionen zu unterstützen. Informationen zu iOS 10 und höher finden Sie im Leitfaden zum Benutzerbenachrichtigungsframework zur Unterstützung von lokalen und Remotebenachrichtigungen auf einem iOS-Gerät.
Exemplarische Vorgehensweise
Erstellen Sie eine einfache Anwendung, die lokale Benachrichtigungen in Aktion anzeigt. Diese Anwendung enthält eine einzelne Schaltfläche. Wenn wir auf die Schaltfläche klicken, wird eine lokale Benachrichtigung erstellt. Nachdem der angegebene Zeitraum abgelaufen ist, wird die Benachrichtigung angezeigt.
Erstellen Sie in Visual Studio für Mac eine neue Single View iOS-Lösung, und rufen Sie sie
Notifications
auf.Öffnen Sie die
Main.storyboard
Datei, und ziehen Sie eine Schaltfläche auf die Ansicht. Benennen Sie die Schaltfläche , und geben Sie ihm den Titel "Benachrichtigung hinzufügen". Möglicherweise möchten Sie an diesem Punkt auch einige Einschränkungen auf die Schaltfläche festlegen:Bearbeiten Sie die
ViewController
Klasse, und fügen Sie der ViewDidLoad-Methode den folgenden Ereignishandler hinzu:button.TouchUpInside += (sender, e) => { // create the notification var notification = new UILocalNotification(); // set the fire date (the date time in which it will fire) notification.FireDate = NSDate.FromTimeIntervalSinceNow(60); // configure the alert notification.AlertAction = "View Alert"; notification.AlertBody = "Your one minute alert has fired!"; // modify the badge notification.ApplicationIconBadgeNumber = 1; // set the sound to be the default sound notification.SoundName = UILocalNotification.DefaultSoundName; // schedule it UIApplication.SharedApplication.ScheduleLocalNotification(notification); };
Dieser Code erstellt eine Benachrichtigung, die einen Sound verwendet, den Wert des Symbolsignals auf 1 festlegt und dem Benutzer eine Warnung anzeigt.
Als Nächstes bearbeiten Sie die Datei
AppDelegate.cs
, fügen Sie zuerst den folgenden Code zurFinishedLaunching
Methode hinzu. Wir haben überprüft, ob das Gerät iOS 8 ausführt, wenn dies der Grund ist, um die Berechtigung des Benutzers zum Empfangen von Benachrichtigungen zu bitten:if (UIDevice.CurrentDevice.CheckSystemVersion (8, 0)) { var notificationSettings = UIUserNotificationSettings.GetSettingsForTypes ( UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, null ); application.RegisterUserNotificationSettings (notificationSettings); }
AppDelegate.cs
Fügen Sie weiterhin die folgende Methode hinzu, die aufgerufen wird, wenn eine Benachrichtigung empfangen wird:public override void ReceivedLocalNotification(UIApplication application, UILocalNotification notification) { // show an alert UIAlertController okayAlertController = UIAlertController.Create(notification.AlertAction, notification.AlertBody, UIAlertControllerStyle.Alert); okayAlertController.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null)); UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(okayAlertController, true, null); // reset our badge UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0; }
Wir müssen den Fall behandeln, in dem die Benachrichtigung aufgrund einer lokalen Benachrichtigung gestartet wurde. Bearbeiten Sie die Methode
FinishedLaunching
,AppDelegate
um den folgenden Codeausschnitt einzuschließen:// check for a notification if (launchOptions != null) { // check for a local notification if (launchOptions.ContainsKey(UIApplication.LaunchOptionsLocalNotificationKey)) { var localNotification = launchOptions[UIApplication.LaunchOptionsLocalNotificationKey] as UILocalNotification; if (localNotification != null) { UIAlertController okayAlertController = UIAlertController.Create(localNotification.AlertAction, localNotification.AlertBody, UIAlertControllerStyle.Alert); okayAlertController.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null)); Window.RootViewController.PresentViewController(okayAlertController, true, null); // reset our badge UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0; } } }
Führen Sie schließlich die Anwendung aus. Unter iOS 8 werden Sie aufgefordert, Benachrichtigungen zuzulassen. Klicken Sie auf "OK ", und klicken Sie dann auf die Schaltfläche "Benachrichtigung hinzufügen". Nach einer kurzen Pause sollte das Warnungsdialogfeld angezeigt werden, wie in den folgenden Screenshots gezeigt:
Zusammenfassung
In dieser exemplarischen Vorgehensweise wurde gezeigt, wie Sie die verschiedenen APIs zum Erstellen und Veröffentlichen von Benachrichtigungen in iOS verwenden. Außerdem wurde gezeigt, wie sie das Anwendungssymbol mit einem Signal aktualisieren, um dem Benutzer anwendungsspezifisches Feedback zu geben.