Freigeben über


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.

  1. Erstellen Sie in Visual Studio für Mac eine neue Single View iOS-Lösung, und rufen Sie sie Notificationsauf.

  2. Ö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: Festlegen einiger Einschränkungen für die Schaltfläche

  3. 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.

  4. Als Nächstes bearbeiten Sie die Datei AppDelegate.cs, fügen Sie zuerst den folgenden Code zur FinishedLaunching 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);
    }
    
  5. AppDelegate.csFü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;
    }
    
  6. 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;
            }
        }
    }
    
  7. 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:

    Bestätigen der Möglichkeit zum Senden von BenachrichtigungenSchaltfläche Dialogfeld

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.