Table of Contents |
---|
...
Tüm parametreleri içeren örnek bir kullanım aşağıdaki gibidir.
Kotlin
Code Block | ||
---|---|---|
| ||
RelatedDigital.setIsPushNotificationEnabled( context = applicationContextcontext, isPushNotificationEnabled = true, googleAppAlias = Constants.GOOGLE_APP_ALIAS"googleAppAliasDeğeri, huaweiAppAlias = Constants.HUAWEI_APP_ALIAS"huaweiAppAliasDeğeri, token = token, notificationSmallIcon = R.drawable.text_icon, notificationSmallIconDarkMode = R.drawable.text_icon_dark_mode, isNotificationLargeIcon = true, notificationLargeIcon = R.mipmap.ic_launcher, notificationLargeIconDarkMode = R.mipmap.ic_launcher, notificationPushIntent = "com.relateddigital.androidexampleapp.PushNotificationActivity", notificationChannelName = "relateddigital-android-test", notificationColor = "#d1dbbd" ) |
Java
Code Block | ||
---|---|---|
| ||
RelatedDigital.setIsPushNotificationEnabled( context, true, "googleAppAliasDeğeri", "huaweiAppAliasDeğeri, token, R.drawable.text_icon, R.drawable.text_icon_dark_mode, true, R.mipmap.ic_launcher, R.mipmap.ic_launcher, "com.relateddigital.androidexampleapp.PushNotificationActivity", "relateddigital-android-test", "#d1dbbd" ); |
Token-Üye Eşleşmesi
Kullanıcıya ait çeşitli parametreler biliniyorsa kayıt aşamasında ya da sonrasında aşağıdaki gibi sunucularımıza gönderilebilir. Aşağıdaki kod bloğu sayesinde aynı bilgilere ait kullanıcı RMC panelinde varsa, alınan token kullanıcı ile eşleştirilecektir.
Bu method sayesinde subscribe işlemi için sunucuya gönderilen json objesinde extra parametresine değerler eklenmiş olur ve kullanıcının hangi token ile eşleştirileceği belirtilmiş olur. Zorunlu parametreler ve opsiyonel parametreler gönderildikten sonra sync() metodu çağrılmalıdır.
Kotlin
|
Java
Code Block | ||
---|---|---|
| ||
--Zorunlu parametreler-- RelatedDigital.setEmail(context, "test@euromsg.com"); RelatedDigital.setRelatedDigitalUserId(context, "testRelatedDigitalUserId"); --Opsiyonel parametreler-- RelatedDigital.setEmailPermit(context, EmailPermit.ACTIVE); RelatedDigital.setGsmPermit(context, GsmPermit.ACTIVE); RelatedDigital.setTwitterId(context, "testTwitterId"); RelatedDigital.setFacebookId(context, "testFacebookId"); RelatedDigital.setPhoneNumber(context, "testPhoneNumber"); RelatedDigital.setUserProperty(context, "instagram", "testInstagramId"); RelatedDigital.sync(context); |
RelatedDigital.setIsPushNotification() metodu aracılığıyla Push Notification Modülü etkinleştirildiğinde, cihaza ait token bilgisi RMC veri tabanına yazılır. Bir token; kullanıcı uygulamada oturum açana kadar “anonim” yani hiç bir kullanıcı ile eşleştirilmeden kaydedilir. Bu token ın bir kullanıcıyla eşleştirilebilmesi için uygulamada oturum açılmış olması ve SDK tarafından bu token ın sahibini tanımlayıcı bir bilginin (KEY_ID yada EMAIL) RMC'ye gönderilmesi gerekir. Bu bilgiler push mesajı payload unda "extra" : {} bloğunda yer alır.
Mobil kanaldan gelen datalarınızın RMC'ye yüklenebilmesi için, aktif RMC hesabınızda kullanmış olduğunuz referans değeriniz ne ise (KEY_ID* veya E-Mail) mobil kanaldan gelen dataların da bu referans ile gelmesine dikkat ediniz."
*KEY_ID: Uygulama sahibi tarafından müşterisinin tekilleştirilmesi için kullanılan id değerleridir. Bunlar CRM id, userId, customerId, accountId gibi farklı isimlerle ifade ediliyor olabilir.
Kullanıcı-token eşleşmesi için gönderilen payload da extra parametresi bu şekilde parametreler alacaktır;
|
IYS E-Posta Kaydı
Kotlin
Code Block | ||
---|---|---|
| ||
val callback: EuromessageCallback = object : EuromessageCallback {
override fun success() {
Log.i("IYS Kaydı", "Başarılı")
}
override fun fail(errorMessage: String?) {
Log.e("IYS Kaydı", "Başarısız : $errorMessage")
}
}
RelatedDigital.registerEmail(
context = context,
email = "test@euromsg.com",
emailPermit = EmailPermit.ACTIVE,
isCommercial = false,
callback = callback
) |
Java
Code Block | ||
---|---|---|
| ||
EuromessageCallback callback = new EuromessageCallback() { @Override public void success() { Log.i("IYS Kaydı", "Başarılı"); } @Override public void fail(String errorMessage) { Log.e("IYS Kaydı", "Başarısız : " + errorMessage); } }; RelatedDigital.registerEmail( context, "test@euromsg.com", EmailPermit.ACTIVE, false, callback ); |
Info |
---|
Eğer kullanıcınız kurumsal bir hesap ise registerEmail() metodundaki isCommercial parametresini true olarak göndermeniz gerekmektedir. |
Info |
---|
Eğer RMC panel üzerinde bir kullanıcı eşleştirmesi görmüyorsanız, RMC support ekibinden ilgili appKey’in FLAG’ini aktif hale getirmesini talep ediniz. |
...
Kullanıcı bildirime tıkladığında RelatedDigital.setPushIntent() metodu aracılığıyla girdiğiniz Activity açılacaktır. Eğer bu metodu kullanmadıysanız launcher activity açılacaktır. Bu Activity de onNewIntent() metodu içerisinde bildirim içeriği elde edilip kullanıcıyı ilgili sayfaya yönlendirme ve bildirimle ilgili okundu raporu gönderilme işlemlerinin yapılması gerekmektedir.
Kotlin
Code Block | ||
---|---|---|
| ||
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
if (intent != null) {
val bundle = intent.extras
if (bundle != null) {
val message = intent.extras!!.getSerializable("message") as Message?
if (message != null) {
//Okundu raporunun gönderilmesi
RelatedDigital.sendPushNotificationOpenReport(this, message)
//Kullanıcının ilgili sayfaya yönlendirilmesi - message.url
..
} else {
// Carousel bildiriminin geldiğini ve kullanıcının bir öğeye tıkladığını gösterir
val itemClickedUrl = bundle.getString("CarouselItemClickedUrl")
if (itemClickedUrl != null && itemClickedUrl != "") {
//Kullanıcının ilgili sayfaya yönlendirilmesi - itemClickedUrl
..
}
}
}
}
} |
Java
Code Block | ||
---|---|---|
| ||
@Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); if(intent != null) { Bundle bundle = intent.getExtras(); if (bundle != null) { Message message = (Message) intent.getExtras().getSerializable("message"); if(message != null) { //Okundu raporunun gönderilmesi RelatedDigital.sendPushNotificationOpenReport(this, message); //Kullanıcının ilgili sayfaya yönlendirilmesi - message.getUrl() .. } else { // Carousel bildiriminin geldiğini ve kullanıcının bir öğeye tıkladığını gösterir String itemClickedUrl = bundle.getString("CarouselItemClickedUrl"); if(itemClickedUrl != null && !itemClickedUrl.equals("")) { //Kullanıcının ilgili sayfaya yönlendirilmesi - itemClickedUrl .. } } } } } |
...
Mesajlar tarihe göre sıralanmıştır. Son gelen mesaj listenin ilk başında gösterilir.
Kotlin
Code Block | ||
---|---|---|
| ||
val pushMessageInterface: PushMessageInterface = object : PushMessageInterface {
override fun success(pushMessages: List<Message>) {
// pushMessages değişkenini kullanarak geliştirmenizi yapabilirsiniz
}
override fun fail(errorMessage: String) {
Log.e("Geçmiş Bildirimler", errorMessage)
}
}
RelatedDigital.getPushMessages(activity, pushMessageInterface) |
Java
Code Block | ||
---|---|---|
| ||
PushMessageInterface pushMessageInterface = new PushMessageInterface() { @Override public void success(List<Message> pushMessages) { // pushMessages değişkenini kullanarak geliştirmenizi yapabilirsiniz } @Override public void fail(String errorMessage) { Log.e("Geçmiş Bildirimler", errorMessage) } }; RelatedDigital.getPushMessages(activity, pushMessageInterface); |
Bildirim Mesajı İçeriği
Veri Tipi | Değişken | Açıklama |
---|---|---|
String | mediaUrl | Foto, video url |
String | altUrl | Alternate URL |
String | campaignId | Kampanya ID si |
String | pushId | Bildirim ID si |
String | url | Kampanya URL si |
String | message | Bildirim Mesajı |
String | title | Bildirim Başlığı |
String | sound | Bildirim Sesi |
PushType | pushType | Bildirim Tipi |
Map<String, String> | params | Özel Parametreler |
...
Eğer uygulamanızda WRITE_EXTERNAL_STORAGE ve READ_EXTERNAL_STORAGE izinlerini kullanıyorsanız aşağıdaki satırı AndroidManifest.xml dosyanıza <application tag ı içerisine eklemeniz gerekmektedir.
Code Block | ||
---|---|---|
| ||
android:requestLegacyExternalStorage="true" |
...