Olá, no post de hoje irei demonstrar como você pode criar notificações locais em suas aplicações Xamarin.Forms.
A ideia de utilizar notificações locais é evitar o uso de notificações de push em momentos desnecessários. Mas se esse não for o seu caso e você necessitar de notificações de push, recomendo ler o post: OneSignal Push Notification – Xamarin.Forms.
ADICIONANDO O NUGET PACKAGE
Clique com o botão direito em cima de sua Solution e selecione “Manage NuGet Packages for Solution…”.
Digite “Xam.Plugins.Notifier” e selecione o plugin como demonstrado na imagem a seguir.
Selecione todos os projetos e clique no botão “Install”.
Xaml
No arquivo xaml crie um botão que servirá para disparar a notificação. Observe que a propriedade Clicked chama o método Start_Notification.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8" ?> | |
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" | |
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" | |
xmlns:local="clr-namespace:LocalNotificationDemo" | |
x:Class="LocalNotificationDemo.MainPage"> | |
<StackLayout> | |
<Button Text="Notification" Clicked="Start_Notification"/> | |
</StackLayout> | |
</ContentPage> |
CODE-BEHIND
No método Start_Notification utilize o CrossLocalNotifications.Current.Show com o título e o texto desejado para a notificação.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using Plugin.LocalNotifications; | |
using Xamarin.Forms; | |
namespace LocalNotificationDemo | |
{ | |
public partial class MainPage : ContentPage | |
{ | |
public MainPage() | |
{ | |
InitializeComponent(); | |
} | |
public void Start_Notification(object sender, EventArgs e) | |
{ | |
CrossLocalNotifications.Current.Show("Title","Text"); | |
} | |
} | |
} |
Resultado
Esse e todos os exemplos deste blog encontram-se disponíveis no GitHub.
Ótimo! Muito bom! Parabéns men!
CurtirCurtido por 1 pessoa
Obrigado 🙂
CurtirCurtir
Bom dia Juliano, tudo bem?
O meu código funciona bem no Android 6 e apresenta corretamente a notificação. Porém o mesmo código rodando no Android 8 não aparece a notificação e nem da nenhum erro. O que poderia ser?
CurtirCurtir
Boa noite Juliano,
desculpe a minha ignorância, mas a notificação local, não envia aos demais dispositivos, somente no dispositivo que dispara a notificação, certo?
Haveria alguma forma de enviar/receber notificação offline a todos os dispositivos que utilizam o App?
Obrigado.
CurtirCurtir
Olá,
Sim, as notificações locais é apenas para o dispositivo em questão.
Sim, provavelmente em algum momento da sua lógica de negócios, quando acontecer algo que você deseja disparar a notificação naquele dispositivo. Agora, se você deseja que a notificação aconteça a partir de algo que ocorreu em outro dispositivo, recomendo a utilização de push notification (não offline).
Espero ter ajudado
CurtirCurtir