Press ESC to close

Xamarin Forms Messaging Center

Merhabalar arkadaşlar,

Bu yazımızda Xamarin Forms’da en çok kullanılan özelliklerden birisi olan Messaging Center‘dan bahsedeceğiz. Messaging Center adından da hafiften anlaşılacağı gibi sayfalar arası mesajlaşmadır. Eğer daha önce Native uygulama geliştirme deneyiminiz olduysa Swift ile iOS’de Notification Center ile yapabiliyorsunuz. Uygulamalarda bir çok nedenden ötürü Messaging Center kullanıyoruz. Bunlar; ekrana hata mesajı basmak, her sayfada aynı işlemi aynı anda yapmak, 2 3 sayfa öncesi haber göndermek, sayfalar arası veri akışı vb. durumlarda kullanıyoruz. Kullanımı oldukça basit.

Messaging Center’da bir mesajı alan kısım ve mesajı gönderen kısım vardır. Mesajı alan kısım ilk önce bunu o sayfada belirtmeli. Burada ihtiyacı olan şey bir değer ve bu değer ile mesaj gönderildiğinde gelen mesajın tipi önemlidir. Bir örnek yapalım. Bu örnek başarılı bir işlem gerçekleştiğinde ekrana başarılı diye bir mesaj göstersin.

İlk olarak tüm sayfalardan bu mesajı gösterebilmek için App sınıfında bu mesaja kayıt olmak gerekiyor. Normalde sadece bir sayfada da kayıt olabilirsiniz ama tüm sayfalarda gösterebilmek için App.cs içinde kayıt olmak lazım. Kayıt olma şekli aslında çok basit. Subscribe olup dönüş tipini belirtmek lazım. Ardından hangi sayfanın bu mesaja kayıt olacağını bildirip ve hangi mesaja kayıt olması gerektiğini yazıyoruz. Ardından bu mesajı alırsak ne işlem uygulamayacağımızı yapıyoruz.

using System;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace XamMessagingCenter
{
    public partial class App : Application
    {
        public App()
        {
            InitializeComponent();

            MessagingCenter.Subscribe<string>(this, "SuccessMessage", (obj) =>
              {
                  App.Current.MainPage.DisplayAlert("Success", obj, "OK");
              });

            MainPage = new MainPage();
        }

        protected override void OnStart()
        {
            // Handle when your app starts
        }

        protected override void OnSleep()
        {
            // Handle when your app sleeps
        }

        protected override void OnResume()
        {
            // Handle when your app resumes
        }
    }
}

Sonrasında ise mesaj göndermek kalıyor. Mesaj göndermek çok daha basit bir işlem. Sadece ne türden bir mesaj göndereceğinizi ve göndereceğiniz mesajı yazıyorsunuz. Ardından hangi mesaja göndereceğiniz Key’i yazıyorsunuz.

using System;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace XamMessagingCenter
{
    public partial class App : Application
    {
        public App()
        {
            InitializeComponent();

            MessagingCenter.Subscribe<string>(this, "SuccessMessage", (obj) =>
              {
                  App.Current.MainPage.DisplayAlert("Success", obj, "OK");
              });

            MainPage = new MainPage();
        }

        protected override void OnStart()
        {
            // Handle when your app starts
        }

        protected override void OnSleep()
        {
            // Handle when your app sleeps
        }

        protected override void OnResume()
        {
            // Handle when your app resumes
        }
    }
}

Comments (1)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir