Návod – Použití místních oznámení v Xamarin.iOS
V této části si ukážeme, jak používat místní oznámení v aplikaci Xamarin.iOS. Předvede základy vytváření a publikování oznámení, které při přijetí aplikací zobrazí upozornění.
Důležité
Informace v této části se týkají iOS 9 a předchozích verzí, které zde zůstaly, aby podporovaly starší verze iOSu. Pro iOS 10 a novější najdete průvodce rozhraním user Notification Framework pro podporu místního i vzdáleného oznámení na zařízení s iOSem.
Názorný postup
Umožňuje vytvořit jednoduchou aplikaci, která bude zobrazovat místní oznámení v akci. Tato aplikace bude mít na něm jedno tlačítko. Když na tlačítko klikneme, vytvoří se místní oznámení. Po uplynutí zadaného časového období se zobrazí oznámení.
V Visual Studio pro Mac vytvořte nové řešení s iOSem s jedním zobrazením a volejte ho
Notifications
.Main.storyboard
Otevřete soubor a přetáhněte tlačítko do zobrazení. Pojmenujte tlačítko a pojmenujte ho názvem Přidat oznámení. V tomto okamžiku můžete také chtít nastavit některá omezení tlačítka:ViewController
Upravte třídu a přidejte následující obslužnou rutinu události 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); };
Tento kód vytvoří oznámení, které používá zvuk, nastaví hodnotu ikony na hodnotu 1 a zobrazí upozornění na uživatele.
Dále upravte soubor
AppDelegate.cs
, nejprve přidejte do metody následující kódFinishedLaunching
. Zkontrolovali jsme, jestli zařízení používá iOS 8, pokud se vyžaduje, abychom požádali o oprávnění uživatele k přijímání oznámení:if (UIDevice.CurrentDevice.CheckSystemVersion (8, 0)) { var notificationSettings = UIUserNotificationSettings.GetSettingsForTypes ( UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, null ); application.RegisterUserNotificationSettings (notificationSettings); }
Stále v
AppDelegate.cs
, přidejte následující metodu, která bude volána při přijetí oznámení: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; }
Musíme zpracovat případ, kdy se oznámení spustilo kvůli místnímu oznámení. Upravte metodu
FinishedLaunching
AppDelegate
tak, aby zahrnovala následující fragment kódu:// 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; } } }
Nakonec spusťte aplikaci. V iOSu 8 se zobrazí výzva k povolení oznámení. Klikněte na OK a potom klikněte na tlačítko Přidat oznámení . Po krátkém pozastavení by se mělo zobrazit dialogové okno upozornění, jak je znázorněno na následujících snímcích obrazovky:
Souhrn
Tento názorný postup ukázal, jak používat různá rozhraní API pro vytváření a publikování oznámení v iOSu. Ukázalo se také, jak aktualizovat ikonu aplikace pomocí odznáček, který uživateli poskytne zpětnou vazbu specifickou pro aplikaci.