1. Push uygulamasında login olunan üyelerin direkt olarak Euromessage üye paneline aktarılması
Extra bloğuna bazı özel parametreler yollanarak üye kaydı yapılabilir. İlgili EMAIL hesapta kayıtlı değilse yine extra bloğunda gönderilen kanal izinlerine göre hesaba kayıt edilecektir. Push uygulamasında login olunan üyelerin direkt olarak Euromessage üye paneline aktarılması isteniyorsa; RMC Support ekibinden PUSH_SUBSCRIPTION_PERMISSION_ENABLED flag inin açılması talep edilmelidir.
|
|
|
2. Android Custom Parametreler ve Hedef URL
RMC arayüzünde tanımladığınız değişkenlere intent.getExtra() içinden erişebilirsiniz. Activity'e gelen push bildiriminin içindeki parametreleri, onResume() ve onNewIntent() .
|
Veri Tipi | Değişken | Açıklama |
---|---|---|
String | mediaUrl | URL for images and video |
String | altUrl | Alternate URL |
String | campaignId | Campaign ID |
String | url | Campaign URL |
String | message | Message |
String | sound | Sound file |
PushType | pushType | Push Type |
Map<String, String> | params | Custom parameters |
3. Android Custom Sound Kullanımı (Özel bir bildirim sesi kullanmak)
Android custom sound eklemek için geliştiricinin app seviyesinde raw dosyasına ilgili özel müziği eklenmesi gerekiyor.
...
4. Carousel Pushta kullanıcının hangi ögeye tıkladığını öğrenme
AndroidManifest.xml dosyasına aşağıdaki gibi receiver eklemelisiniz.
...
Android 8 ile beraber gelen arkaplan işlemleriyle ilgili sınırlamadan kaynaklı AndroidManifest.xml dosyasına BroadcastReceiver tanımlayarak tıklanan Carousel itemıyla ilgili bilgiye ulaşmak mümkün olmadığı için 4.6.3 versiyonuyla beraber yapıda değişiklik olmuştur.
4.6.3’den küçük sdk versiyonları için:
AndroidManifest.xml dosyasına aşağıdaki gibi receiver eklemelisiniz.
Code Block | ||
---|---|---|
| ||
<receiver android:name="your_broadcast_receiver_here" android:exported="false" > <intent-filter> <action android:name="CarouselItemClickIntentFilter" /> </intent-filter> </receiver> |
...
Code Block | ||
---|---|---|
| ||
package com.relateddigital.euromessage; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.util.Log; import euromsg.com.euromobileandroid.model.CarouselItem; import static euromsg.com.euromobileandroid.Constants.CAROUSAL_ITEM_CLICKED_KEY; import static euromsg.com.euromobileandroid.Constants.CAROUSEL_ITEM_CLICKED_URL; public class CarouselItemClickReceiver extends BroadcastReceiver { private static final String LOG_TAG = "CarouselItemReceiver"; @Override public void onReceive(Context context, Intent intent) { if(intent != null) { Bundle bundle = intent.getExtras(); if(bundle != null) { CarouselItem itemClicked = (CarouselItem itemClicked = (CarouselItem) bundle.getParcelable(CAROUSAL_ITEM_CLICKED_KEY);) bundle.getParcelable(CAROUSAL_ITEM_CLICKED_KEY); String itemClickedUrl = bundle.getString(CAROUSEL_ITEM_CLICKED_URL); if(itemClickedUrl != null && !itemClickedUrl.equals("")) { try { Intent viewIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(itemClickedUrl)); viewIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(viewIntent); } catch (Exception e) { Log.e(LOG_TAG, "The link is not formatted properly!"); } } } } } } |
4.6.3 ve üstü sdk versiyonları için:
setPushIntent() metodu ile girilen class içinde (eğer bu metod kullanılmadıysa Launcher Activity içerisinde) onNewIntent metodu içinde aşağıdaki gibi tıklanan itemla ilgili bilgiye ulaşabilir.
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) { handlePush(message, intent); } else { // Carousel push notification : an item was clicked String itemClickedUrl = bundle.getString(CAROUSEL_ITEM_CLICKED_URL"CarouselItemClickedUrl"); if(itemClickedUrl != null && !itemClickedUrl.equals("")) { try { Intent viewIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(itemClickedUrl)); viewIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(viewIntent); } catch (Exception e) { Loge.e(LOG_TAG, "The link is not formatted properly!"printStackTrace(); } } } } } } |
EUROMESSAGE SDK METHODLAR
1. Token Ekleme
Method | Açıklaması |
---|---|
subscibe(String token, Context context) | Token'ı Euromessage servislerine gönderir |
2.Kullanıcı Özelleştirme ile ilgili Methodlar
Method | Açıklaması |
---|---|
setEmail(String email, Context context) | E-mail’i anonim kullanıcıya atar |
setEuroUserId(String userKey, Context context) | Id’yi anonim kullanıcıya atar |
setFacebook(String facebookId, Context context) | Facebook id’yi kullanıcıya atar |
setTwitterId(String twitterId, Context context) | Twitter id'yi kullanıcıya atar |
setPhoneNumber(String msisdn, Context context) | Telefon numarasını kullanıcıya atar |
setLocation(double latitute, double longitude, Context context) | Lokasyon’u kullanıcıya atar |
setAppVersion(String appVersion) | App versiyonu kullanıcıya atar |
setUserProperty(String key, String value, Context context) | Özel parametreleri kullanıcıya atar (RMC ekibiyle iletişime geçiniz) |
*sync(Context context) | Kullanıcıya atılan bilgileri token ile eşleştirir. |
* Yukarıdaki tanımlamalardan herhangi birini yaptıktan sonra çağrılması zorunludur.
3. SDK Özelleştirme ile ilgili methodlar
Method | Açıklaması |
---|---|
reportRead(Bundle bundle) | Pending Intent’te tutulan push id’yi RMC’ye bildirim okundu raporu olarak iletir |
setChannelName(String channelName, Context context) | Uygulama detaylarındaki kanal ismini günceller |
setNotificationColor(String hexColor) | Bildirim tema rengini setler. (Hex Color) |
setNotificationTransparentSmallIcon(int transparentSmallIcon, Context context) | Bildirim ekranındaki küçük icon'un ayarlanması içindir. (Drawable klasöründen) |
setNotificationTransparentSmallIconDarkMode(int transparentSmallIcon, Context context) | Cihaz koyu temadayken bildirim ekranındaki küçük icon'un ayarlanması içindir. (Drawable klasöründen) |
useNotificationLargeIcon(boolean willBeUsed) | Bildirim ekranında büyük icon’un kullanılıp kullanılmayacağına karar vermek içindir.(Default True) |
setNotificationLargeIcon(int largeIcon, Context context) | Bildirim ekranındaki büyük icon'un ayarlanması içindir. (Drawable klasöründen) |
setNotificationLargeIconDarkMode(int largeIconDarkMode, Context context) | Cihaz koyu temadayken bildirim ekranındaki büyük icon'un ayarlanması içindir. (Drawable klasöründen) |
setPushIntent(String intentStr, Context context) | Bildirime tıklanınca açılacak activity’i setler. Activity paket yolu setlenir. Opsiyoneldir |
setPushPermit(PushPermit pushPermit, Context context) | RMC paneldeki push izinleri Aktif veya Pasif olarak setlenir |
setEmailPermit(EmailPermit emailPermit, Context context) | RMC paneldeki email izinleri Aktif veya Pasif olarak setlenir |
setGsmPermit(GsmPermit gsmPermit, Context context) | RMC paneldeki gsm izinleri Aktif veya Pasif olarak setlenir |
removePushIntent(Context context) | Bildirime tıklanınca açılacak activity’i kaldırır |
removeChannelName(Context context) | Uygulama detaylarındaki kanal ismini kaldırır |
removeIntentExtra(Context context) | Uygulama extralarını kaldırır |
removeNotificationColor(Context context) | Bildirim tema rengini kaldırır |
removeNotificationTransparentSmallIcon(Context context) | Bildirim ikonunu kaldırır |
removeUserProperties(Context context) | Extra parametrelerini kaldırır |
getCarousel(Intent intent) | Carousel için hedef url’i size verir |
getNotification(Intent intent) | Text ve Image için hedef url’i size verir |
Örnek Konfigürasyon
Code Block | ||
---|---|---|
| ||
euroMobileManager = EuroMobileManager.init(Constants.GOOGLE_APP_ALIAS, Constants.HUAWEI_APP_ALIAS, getApplicationContext()); //optional euroMobileManager.setNotificationTransparentSmallIcon(android.R.drawable.star_off, getApplicationContext()); euroMobileManager.setNotificationTransparentSmallIconDarkMode(R.drawable.delete_icon_dark_mode, getApplicationContext()); euroMobileManager.useNotificationLargeIcon(true); euroMobileManager.setNotificationLargeIcon(R.drawable.euromessage, getApplicationContext()); euroMobileManager.setNotificationLargeIconDarkMode(R.drawable.related_digital_dark_mode, getApplicationContext()); euroMobileManager.setNotificationColor("#d1dbbd"); euroMobileManager.setChannelName("Demo", getApplicationContext()); euroMobileManager.setPushIntent("com.relateddigital.euromessage.MainActivity", getApplicationContext()); |
...