OneSignal Android Bildirim Sistemi


Merhabalar, bu yazımızda sizlere OneSignal’ın Bildirim Sisteminden bahsedecek ve android için anlık bildirim alabilecek bir proje geliştireceğiz.

OneSignal.com‘un sistemini kullanarak bildirimlerinizi birçok platforma gönderebiliyorsunuz. Bunlar; ios, android, amazon, windows, google chrome,safari, firefox, marmalade, adobe air, phonegap, ionic, cocos2d-x, corona, unity olarak sıralanmakta.

OneSignal’ın referansları arasında UBER, znga, peak games gibi tanınmış firmalar var.

OneSignal‘ın bildirim gönderme ekranında çok güzel özellikler var, birçoğunu aşağıda sıralamaya çalıştım;

  • Cihazın diline özel bildirmler göndermek, İngilizce, Türkçe ve diğer diller.
  • Bildirim sesi, bildirim simgesi ve LED rengini :) seçebilme
  • Bildirimin kilitli ekranda görünüp görünmeyeceği
  • Arkaplanda json verisi gönderme
  • Bildirime dokunulduğunda bir linkin açılması
  • Bildirime buttonlar eklemek
  • Bildirimin hemen değil de ileriki bir zamanda gönderilmesi,
  • Bildirimlerin kullanıcının yerel zamanına göre teslim edilmesi.

Şimdi android uygulamalarımızda OneSignal.com üzerinden bildirimleri nasıl göndereceğimizi görelim.

OneSignal.coma kayıt olun ve yeni bir uygulama ekleyin.

Screenshot_2015_12_13_20_02_21.png

Uygulamanızın ismini yazın.

Platform kısmından Android‘i seçin.

Screenshot_2015_12_13_20_13_24

Google Server API Key girmeniz istenecektir. Eğer hazırsa girin hazır değil ise aşağıdaki adımlarla GCM mesajı göndereceğiniz projenizi oluşturabilirsiniz.

  • https://console.developers.google.com/ a girerek yeni proje oluşturun. Projenize bir isim verin.
    Screenshot_2015_12_13_20_23_46.png
  • Project ID numarasını bir yere not edin. İleriki adımlarda SDK ayarlarını yaparken kullanacağız.
    Screenshot_2015_12_13_20_25_36.png
  • Projemizden bildirim gönderebilmemiz için, projemize Google Cloud Messaging for Android API‘sini aktif edip Server Key oluşturmamız gerekiyor.
  • Arama kısmına Google Cloud Messaging yazın, çıkan sonucu seçin.
    Screenshot_2015_12_13_20_27_56.png
  • API‘yi aktif edin ve sol menüden Credentials’a tıklayın.
    Screenshot_2015_12_13_20_30_45.png
  • New credentials‘dan API Key‘i seçin. Açılan ekranda Server Key‘e tıklayın, sonraki ekranda Create diyerek Server API Key’in oluşmasını sağlayın.
    Screenshot_2015_12_13_20_34_15.pngScreenshot_2015_12_13_20_35_55.pngScreenshot_2015_12_13_20_36_25.pngScreenshot_2015_12_13_20_39_11.png

OneSignal‘a Projenize ait Server API Key‘ini girerek devam edin.

Screenshot_2015_12_13_20_41_45.png

SDK olarak Adoroid Native’i seçin.

Screenshot_2015_12_13_21_27_02.png

Android Studio‘da projenizi oluşturun veya hazır olan projenize OneSignal için gerekli kütüphaneleri build.gradle (Module: app) dosyasına aşağıdaki satırları ekleyin.

dependencies { compile ‘com.onesignal:OneSignal:2.+@aar’ compile ‘com.google.android.gms:play-services-gcm:+’ compile ‘com.google.android.gms:play-services-analytics:+’ compile “com.google.android.gms:play-services-location:+” compile ‘com.android.support:support-v4:23.+’ }

Aynı dosyada Google Cloud Messaging API‘mizin bulunduğu Projemizin numarasını ve OneSignal’a eklediğimiz uygulamamızın OneSignal ID‘sini belirttiğimiz aşağıdaki satırları uygun şekilde dosyaya yerleştirin.

android { defaultConfig { manifestPlaceholders = [manifestApplicationId: “${applicationId}”, onesignal_app_id: b6e29c2f-aba3-4e67-be71-f133ebc0258a, onesignal_google_project_number: “806014031948”] } }

MainActivity.java dosyanızda onCreate metodu içerisine super.Oncreate metodundan hemen sonra aşağıdaki kodu ekleyin.

OneSignal.startInit(this).init();

Şimdi uygulamayı run edin, cihazınızın OneSignal yönetim panelinize geldiğini göreceksiniz. Bildirimlerinizi alabilmesi için kullanıcnın Subscribed olması gerekir, eklenen gerçek cihazlar otomatik olarak bu değeri alır.

Screenshot_2015_12_21_23_18_03

OneSignal’ın init kısmını aşağıdaki gibi değiştirerek, bildirimler geldiğinde neler yapmak istediğinizi belirtebilir, arkaplanda gönderdiğiniz datayı işleyebilirsiniz.

OneSignal.startInit(this)
        .setNotificationOpenedHandler(new ExampleNotificationOpenedHandler())
        .init();

Yukarıdaki tanımlama ile kullanıcı bildirime dokunduğunda veya uygulama açık iken bildirim geldiğinde aşağıdaki kod parçacığı çalışacaktır. Aşağıdaki kod parçacığını MainActivity.java içerisine yerleştiriniz.

private class ExampleNotificationOpenedHandler implements OneSignal.NotificationOpenedHandler {
    @Override
    public void notificationOpened(String message, JSONObject additionalData, boolean isActive) {
        try {
            if (additionalData != null) {
                if (additionalData.has("actionSelected"))
                    Log.d("OneSignalExample", "OneSignal notification button with id " + additionalData.getString("actionSelected") + " pressed");

                Log.d("OneSignalExample", "Full additionalData:\n" + additionalData.toString());
            }
        } catch (Throwable t) {
            t.printStackTrace();
        }
    }
}

OneSignal yönetim ekranınızdan New Message bölümünü seçin, bildiriminizi oluşturup Preview diyerek son bir göz atıp Send’e tıklayın eğer hemen teslimatı seçtiyseniz bildirim birkaç saniye içinde cihazınıza ulaşacaktır.

Peyam – Gazeteler

tanıtım_gorsel

Peyam ile gündemi kolay, akıllı,
ücretsiz ve hızlı yoldan yakalayın.

Peyam Osmanlıada Haber demektir bunu biliyor muydunuz?

Örnek Uygulamanın Kaynak Kodu :

Bunun gibi birçok ders hazırlayıp yayınlamak istiyoruz ancak bunun için gerçekten ciddi desteğe ihtiyacımız var arkadaşlar. Lutfen 1 dakikanızı ayırıp bu dersi facebook veya twitter hesabınız uzerinden paylaşarak bize destek olun. 

Yeni bir derste görüşmek uzere,
İyi eğlenceler!.

Şunlar da ilginizi çekebilir

5 yorum

  • kamil yaman
    1 Mart 2016 at 02:35

    Merhaba hazır android uygulamam var. Bir türlü onesignal bildiirm yapamadım. Yarımcı olurmusunuz

  • Halil İbrahim YÜCE
    7 Nisan 2016 at 20:57

    Hocam ellerine sağlık çok faydalı bir makale, kafayı yiyecektim az daha niye olmuyor diye sayende çözdüm :)

  • güzel sözler
    2 Mayıs 2016 at 01:07

    Hocam ellerinize sağlık detaylı anlatım olmuş denemeye basliyacagim

  • ozlem
    23 Mayıs 2016 at 03:47

    Merhaba yaziniz cok faydali olmus tesekkurler emeginiz icin. Onesignal diger ozelliklerini de anlatir misiniz?

  • suat
    18 Haziran 2016 at 08:37

    Error:Execution failed for task ‘:app:processDebugGoogleServices’.
    > com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 5 column 6

    bu hata neyden kaynaklı olabilir yardim edermisiniz ?

LEAVE A COMMENT