Návod – používání 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. Ukáže základy vytváření a publikování oznámení, které při přijetí aplikace zobrazí výstrahu.

Důležité

Informace v této části se vztahují k iOS 9 a starší verzi, takže jsme tu ponechali podporovat starší verze iOS. Pro iOS 10 a novější si prosím přečtěte příručku pro uživatelské oznámení , která podporuje místní i vzdálené oznámení na zařízení s iOS.

Názorný postup

Umožňuje vytvořit jednoduchou aplikaci, která bude zobrazovat místní oznámení v akci. V této aplikaci bude k dispozici jediné tlačítko. Po kliknutí na tlačítko se vytvoří místní oznámení. Po uplynutí zadaného časového období se zobrazí oznámení.

  1. v Visual Studio pro Mac vytvořte nové jediné zobrazení řešení pro iOS a zavolejte ho Notifications .

  2. Otevřete Main.storyboard soubor a přetáhněte tlačítko do zobrazení. Pojmenujte tlačítkotlačítko a dejte mu název Přidat oznámení. V tomto okamžiku můžete také nastavit některá omezení na tlačítko: nastavení některých omezení na tlačítku

  3. Upravte ViewController 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 1 a zobrazí uživateli výstrahu.

  4. Další úpravou souboru AppDelegate.cs přidejte do metody nejprve následující kód FinishedLaunching . Kontrolovali jsme, jestli na zařízení běží iOS 8, pokud je potřeba požádat uživatele, aby k přijímání oznámení udělil oprávnění:

    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 bylo oznámení spuštěno z důvodu místního oznámení. Upravte metodu FinishedLaunching v, AppDelegate 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 systému iOS 8 budete vyzváni k povolení oznámení. Klikněte na OK a pak klikněte na tlačítko Přidat oznámení . Po krátké pauzě by se mělo zobrazit dialogové okno výstraha, jak je znázorněno na následujících snímcích obrazovky:

    Potvrzení možnosti odesílat oznámenítlačítko Přidat oznámenídialogové okno upozornění oznámení

Souhrn

Tento názorný postup ukázal, jak používat různá rozhraní API pro vytváření a publikování oznámení v iOS. Také ukazuje, jak aktualizovat ikonu aplikace pomocí znaku k poskytnutí konkrétní zpětné vazby pro aplikaci uživateli.