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

  1. V Visual Studio pro Mac vytvořte nové řešení s iOSem s jedním zobrazením a volejte ho Notifications.

  2. 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: Setting some constraints on the button

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

  4. Dále upravte soubor AppDelegate.cs, nejprve přidejte do metody následující kód FinishedLaunching . 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);
    }
    
  5. 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;
    }
    
  6. Musíme zpracovat případ, kdy se oznámení spustilo kvůli místnímu oznámení. Upravte metodu FinishedLaunchingAppDelegate 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;
            }
        }
    }
    
  7. 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:

    Confirming the ability to send notificationsThe Add Notification buttonThe notification alert dialog

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.