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.
W Visual Studio dla komputerów Mac utwórz nowe rozwiązanie systemu iOS z jednym widokiem i wywołaj je
Notifications
.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: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.
Następnie zmodyfikuj plik
AppDelegate.cs
, najpierw dodaj następujący kod doFinishedLaunching
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); }
Nadal w
AppDelegate.cs
pliku 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; }
Musimy obsłużyć przypadek, w którym zostało uruchomione powiadomienie z powodu powiadomienia lokalnego. Edytuj metodę
FinishedLaunching
w plikuAppDelegate
, 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; } } }
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:
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.