Návod – Používání místních oznámení v Xamarin.iOSu
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í iOSu 9 a předchozích verzí, které zde zůstaly, aby podporovaly starší verze iOS. V případě iOSu 10 a novějšího najdete pokyny k uživatelskému rozhraní pro oznámení o podpoře místních i vzdálených 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 jedno tlačítko. Když klikneme na tlačítko, 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 zavolejte 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 na tlačítko také nastavit určitá omezení :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 odznáček ikony na hodnotu 1 a zobrazí upozornění na uživatele.
Dále upravte soubor
AppDelegate.cs
, nejprve přidejte doFinishedLaunching
metody následující kód. Zkontrolovali jsme, jestli zařízení používá iOS 8, pokud je potřeba požádat uživatele o oprávnění přijímat 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
v kódu 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í. Klepněte na tlačítko OK a potom klepně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:
Shrnutí
Tento názorný postup ukázal, jak používat různá rozhraní API k vytváření a publikování oznámení v iOSu. Ukázalo se také, jak aktualizovat ikonu aplikace pomocí odznáčku, aby uživateli poskytla zpětnou vazbu specifickou pro aplikaci.