Press ESC to close

Xamarin Forms One Signal (Part 2)

Merhaba arkadaşlar, One Signal üzerinde işlemleri tamamladıktan sonra artık projemizde işlemler yapabiliriz. Bunun için projemize gidip One Signal paketini yüklememiz gerekiyor.

 

Paketi ekledikten sonra App.cs içerisinde OneSignal’i başlatmamız gerekiyor. Burada OneSignal key’i lazım. Bunun için projemizde Settings kısmına gidip, Key & IDs kısmına geçmemiz gerekiyor. Burada OneSignal App Id’ye ihtiyaç duyuyoruz.

Sonrasında ise OneSignal’i projeye eklememiz gerekiyor. Burada şu anlık OneSignal’i başlatsak yeter.

OneSignal.Current.StartInit("6741e5dc-63ca-4761-bed8-9e17accbad03")
                .EndInit();

Sonrasında ise Android kısmında ayarlamalar yapmamız gerekiyor. Android ayarlamaları için öncelikle manifest dosyasında bir kaç satır eklememiz gerekiyor. İzin vermek için aşağıdaki kodu manifest dosyasının içine yapıştırın.

<permission android:name="${manifestApplicationId}.permission.C2D_MESSAGE"
            android:protectionLevel="signature" />
<uses-permission android:name="${manifestApplicationId}.permission.C2D_MESSAGE" />

Ardından bu kodu ise Application etiketleri arasında yazdığınızdan emin olun.

<receiver android:name="com.onesignal.GcmBroadcastReceiver"
            android:permission="com.google.android.c2dm.permission.SEND" >
    <intent-filter>
      <action android:name="com.google.android.c2dm.intent.RECEIVE" />
      <category android:name="${manifestApplicationId}" />
    </intent-filter>
  </receiver>

Android ile ilgili işlemlerimiz bitti. Sırada iOS için yapacaklarımız var. One Signal dökümantasyonunda bir çok işlem yapmamız söylüyor ama bu işlemleri yaptığımızda pek de sağlıklı  çalıştığı söylenemez. Tecrübelerimden sadece Info.plist dosyasına gelip bildirim iznini açmamız gerekiyor.

Gerekli ayarlamaları yaptıktan bildirim geldiği ve bildirim açıldığı zamanları kontrol etmek kaldı. Bunun için App.cs dosyasına gelmemiz gerekiyor. OneSignal’i başlattığımız fonksiyonun altında 2 yeni fonksiyon daha ekleyeceğiz. Burada bildirim geldiği zaman, eğer uygulamada gelen bildirimleri listeli bir şekilde göstermek istiyorsanız Local’e kaydedip kullanıcıya gösterebilirsiniz. Bildirim açıldığında tetiklenen fonksiyon ise, bildirim yönlendirilmesi gerekli olan fonksiyondur. Buraya tıklandığında ise uygulama açılıp, bildirimin tipine göre yönlendirme yapabilirsiniz.

private void ConfigureOneSignal()
        {
            OneSignal.Current.StartInit("6741e5dc-63ca-4761-bed8-9e17accbad03")
                .HandleNotificationReceived((result) =>
                {

                })
                .HandleNotificationOpened((notification) =>
                {

                })
                .EndInit();
        }

OneSignal üzerinden artık bildirim göndermeye hazırız. Ben basit bir şekilde nasıl göndereliceğini göstereceğim. Eğer siz sessiz push nasıla atılır, test cihazları nasıl eklenir, uygulama içerisinden nasıl bildirim gönderilir, belirli kullanıcılara nasıl bildirim gönderilir veya aklınızda başka sorular varsa OneSingal’in dökümanını inceleyebilirsiniz veya bana ulaşabilirsiniz.

Gerekli ayarlamaları yaptıktan sonra uygulamayı çalıştırdığınızda kaç cihazın sizin bildirim servisinize kayıt olduğunu görebiliyorsunuz.

Bildirim göndermek için OneSignal üzerinden mesajlar kısmına gelip buradan yeni bildirim demeniz gerekiyor. Sonrasında ise bir başlık ve açıklama girmeniz lazım. Bu bilgileri de girdikten sonra kayıtlı tüm kullanıcılara bildirim gönderebilirsiniz.

Bu arada kısa bir hatırlatma bildirimler Android emulatorlere geliyor ama OneSignal’in iOS simulatorlerde de çalıştığını iddaa etmesine rağmen ben çalıştıramadım. Bu yüzden fiziksel bir cihazda daha sağlıklı sonuçlar alabilirsiniz.

Takıldığınız veya sormak istediğiniz yerler için mail ya da yorum atarak bana ulaşabilirsiniz.

İyi çalışmalar.

 

 

Comments (4)

  • kübrasays:

    Çarşamba Ocak 6th, 2021 at 12:55

    Merhaba,

    Dökümanınız saysesinde xamarin üzerindeki simulasyona bildirim gönderebildim ancak uygulamaya android telefon bağladığımda bildirim gönderemiyorum OneSignal üzerinden şöyle bir dönüş alıyorum ‘Google Play Hizmetleri Kitaplığı Hatası’ AndroidManifest.xml inizde ‘com.google.android.gms.version’ dosyasının bulunduğundan emin olun .

    Konuyla ilgili yardımcı olabilir misiniz?

    • omersezersays:

      Çarşamba Ocak 6th, 2021 at 15:07

      Selam Kübra,

      Daha önce böyle bir hata ile karşılaşmadım. Github üzerinden projene beni collabrator olarak eklersen inceleyebilirim. Github kullanıcı adım : omersezer

      İyi çalışmalar.

kübra için bir yanıt yazın Yanıtı iptal et

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