Udostępnij za pośrednictwem


Przewodnik: używanie powiadomień lokalnych w rozszerzeniu Xamarin.iOS

W tej sekcji omówimy sposób używania powiadomień lokalnych w aplikacji platformy Xamarin.iOS. W tym artykule przedstawiono podstawy tworzenia i publikowania powiadomienia, które będzie pojawiać się alert po odebraniu przez aplikację.

Ważne

Informacje w tej sekcji dotyczą systemu iOS 9 i wcześniejszych wersji systemu iOS, które zostały tutaj pozostawione do obsługi starszych wersji systemu iOS. W przypadku systemu iOS 10 lub nowszego zapoznaj się z przewodnikiem dotyczącym platformy powiadomień użytkownika na potrzeby obsługi powiadomień lokalnych i zdalnych na urządzeniu z systemem iOS.

Przewodnik

Utwórz prostą aplikację, która będzie wyświetlać powiadomienia lokalne w akcji. Ta aplikacja będzie mieć na nim jeden przycisk. Po kliknięciu przycisku zostanie utworzone powiadomienie lokalne. Po upływie określonego czasu zostanie wyświetlone powiadomienie.

  1. W Visual Studio dla komputerów Mac utwórz nowe rozwiązanie systemu iOS z jednym widokiem i wywołaj je Notifications.

  2. Main.storyboard Otwórz plik i przeciągnij przycisk na widok. Nadaj mu nazwę przycisku i nadaj mu tytuł Dodaj powiadomienie. Możesz również ustawić pewne ograniczenia dla przycisku w tym momencie: Ustawianie pewnych ograniczeń na przycisku

  3. Edytuj klasę i dodaj następującą procedurę ViewController obsługi zdarzeń do metody ViewDidLoad:

    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);
    };
    

    Ten kod utworzy powiadomienie, które używa dźwięku, ustawia wartość wskaźnika ikony na 1 i wyświetla alert dla użytkownika.

  4. Następnie zmodyfikuj plik AppDelegate.cs, najpierw dodaj następujący kod do FinishedLaunching metody . Sprawdziliśmy, czy na urządzeniu jest uruchomiony system iOS 8, jeśli tak, musimy poprosić użytkownika o pozwolenie na odbieranie powiadomień:

    if (UIDevice.CurrentDevice.CheckSystemVersion (8, 0)) {
        var notificationSettings = UIUserNotificationSettings.GetSettingsForTypes (
            UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, null
        );
    
        application.RegisterUserNotificationSettings (notificationSettings);
    }
    
  5. Nadal w AppDelegate.cspliku dodaj następującą metodę, która zostanie wywołana po odebraniu powiadomienia:

    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. Musimy obsłużyć przypadek, w którym zostało uruchomione powiadomienie z powodu powiadomienia lokalnego. Edytuj metodę FinishedLaunching w pliku AppDelegate , aby uwzględnić następujący fragment kodu:

    // 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. Na koniec uruchom aplikację. W systemie iOS 8 zostanie wyświetlony monit o zezwolenie na powiadomienia. Kliknij przycisk OK , a następnie kliknij przycisk Dodaj powiadomienie . Po krótkiej przerwie powinno zostać wyświetlone okno dialogowe alertu, jak pokazano na poniższych zrzutach ekranu:

    Potwierdzanie możliwości wysyłania powiadomieńPrzycisk Dodaj powiadomienieOkno dialogowe alertu powiadomienia

Podsumowanie

W tym przewodniku pokazano, jak używać różnych interfejsów API do tworzenia i publikowania powiadomień w systemie iOS. Pokazano również, jak zaktualizować ikonę aplikacji za pomocą wskaźnika , aby przekazać użytkownikowi opinię specyficzną dla aplikacji.