Passo a passo: usar notificações locais no Xamarin.iOS
Nesta seção, explicaremos como usar notificações locais em um aplicativo Xamarin.iOS. Ele demonstrará os conceitos básicos de criação e publicação de uma notificação que exibirá um alerta quando recebido pelo aplicativo.
Importante
As informações nesta seção pertencem ao iOS 9 e anteriores, foi deixado aqui para suportar versões mais antigas do iOS. Para iOS 10 e posterior, consulte o guia da Estrutura de Notificação do Usuário para oferecer suporte à Notificação Local e Remota em um dispositivo iOS.
Passo a passo
Vamos criar um aplicativo simples que mostrará notificações locais em ação. Este aplicativo terá um único botão nele. Quando clicamos no botão, ele criará uma notificação local. Após o período de tempo especificado ter decorrido, veremos a notificação aparecer.
No Visual Studio para Mac, crie uma nova solução iOS de Modo de Exibição Único e chame-a
Notifications
de .Abra o
Main.storyboard
arquivo e arraste um botão para a Exibição. Nomeie o botão de botão e dê a ele o título Adicionar notificação. Você também pode definir algumas restrições para o botão neste ponto:Edite a
ViewController
classe e adicione o seguinte manipulador de eventos ao método 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); };
Esse código criará uma notificação que usa um som, define o valor do selo de ícone como 1 e exibe um alerta para o usuário.
Em seguida, edite o arquivo
AppDelegate.cs
, primeiro adicione o seguinte código aoFinishedLaunching
método. Verificamos se o dispositivo está executando o iOS 8, se assim for, somos obrigados a pedir a permissão do usuário para receber notificações:if (UIDevice.CurrentDevice.CheckSystemVersion (8, 0)) { var notificationSettings = UIUserNotificationSettings.GetSettingsForTypes ( UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, null ); application.RegisterUserNotificationSettings (notificationSettings); }
Ainda no
AppDelegate.cs
, adicione o seguinte método que será chamado quando uma notificação for recebida: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; }
Precisamos lidar com o caso em que a notificação foi lançada por causa de uma notificação local. Edite o
AppDelegate
métodoFinishedLaunching
no para incluir o seguinte trecho de código:// 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; } } }
Finalmente, execute o aplicativo. No iOS 8, você será solicitado a permitir notificações. Clique em OK e, em seguida, clique no botão Adicionar notificação . Após uma breve pausa, você verá a caixa de diálogo de alerta, conforme mostrado nas seguintes capturas de tela:
Resumo
Este passo a passo mostrou como usar as várias APIs para criar e publicar notificações no iOS. Ele também demonstrou como atualizar o ícone do aplicativo com um selo para fornecer algum feedback específico do aplicativo para o usuário.