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.com‘a kayıt olun ve yeni bir uygulama ekleyin.
Uygulamanızın ismini yazın.
Platform kısmından Android‘i seçin.
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.
- Project ID numarasını bir yere not edin. İleriki adımlarda SDK ayarlarını yaparken kullanacağız.
- 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.
- API‘yi aktif edin ve sol menüden Credentials’a tıklayın.
- 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.
OneSignal‘a Projenize ait Server API Key‘ini girerek devam edin.
SDK olarak Adoroid Native’i seçin.
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.
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
Ö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!.
Merhaba hazır android uygulamam var. Bir türlü onesignal bildiirm yapamadım. Yarımcı olurmusunuz
Hocam ellerine sağlık çok faydalı bir makale, kafayı yiyecektim az daha niye olmuyor diye sayende çözdüm
Hocam ellerinize sağlık detaylı anlatım olmuş denemeye basliyacagim
Merhaba yaziniz cok faydali olmus tesekkurler emeginiz icin. Onesignal diger ozelliklerini de anlatir misiniz?
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 ?