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

  1. V Visual Studio pro Mac vytvořte nové řešení s iOSem s jedním zobrazením a zavolejte 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 na tlačítko také nastavit určitá omezení : 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 odznáček ikony na hodnotu 1 a zobrazí upozornění na uživatele.

  4. Dále upravte soubor AppDelegate.cs, nejprve přidejte do FinishedLaunching 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);
    }
    
  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 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;
            }
        }
    }
    
  7. 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:

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

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.