iOS - Euromsg Objective-C SDK

Objective-C SDK’mız için kritik güvenlik güncellemeleri hariç desteğimiz son bulmuştur. Lütfen Swift SDK’mızı inceleyiniz.


Genel Bilgi

Apple Push Notification Server (APNS) dünya üzerinde bütün iOS cihazların bağlı bulunduğu merkezi bir sunucudur. Herhangi bir anda bir uygulamaya push atılmak istendiği anda gönderilmek istenen mesaj APNS’e ulaştırılır ve APNS bu mesajı ilgili cihaza iletir. Mesajın doğru cihaza ve uygulamaya iletilmesi için her cihaz/uygulama ikilisine karşılık bir anahtar (token) üretilir ve mesajla beraber bu anahtarın da APNS’e gönderilmesi istenir.





APNS’le iletişim için RMC sizden aşağıdaki bilgileri beklemektedir;

  • Token Listesi

Sertifika oluşturma adımlarını APNS Sertifikası Oluşturma sayfasında bulabilirsiniz.




APNS Metodları

APNS sertifikaları Sandbox ve Production olmak üzere ikiye ayrılırlar.

  • Sandbox sertifikası AppStore’a gönderilmemiş uygulamalar için kullanılır ve genellikle geliştirici debugger’a bağlıyken (USB kablosu ile Xcode’a bağlantı varsa) kullanılır.

  • Ad-Hoc ve Testflight üzerinden dağıtılan (kapalı dağıtım) uygulamalar ve AppStore’da yer alan uygulamalar için Production sertifikası kullanılır.


 Token’ların iletimi için RMC tarafından sağlanan SDK’nın kullanılması gerekir. SDK’yı proje içine taşıyıp dosyaları ekledikten sonra aşağıdaki adımları takip ederek SDK’yı uygulamanıza entegre edebilirsiniz.





Uygulamanın APNS sistemine kayıt olması için aşağıdaki metodun uygulama içerisinde çalıştırılması gerekmektedir;

Objective-C
[[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)];

iOS 8 ve sonrası sistemlerde ise aşağıdaki kod çalıştırılmalıdır;

Objective-C
[[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];


Swift

In AppDelegate file of your project you should edit didFinishLaunchingWithOptions func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { if #available(iOS 10.0, *) { // For iOS 10 display notification (sent via APNS) UNUserNotificationCenter.current().delegate = self let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound] UNUserNotificationCenter.current().requestAuthorization( options: authOptions, completionHandler: {_, _ in }) } else { let settings: UIUserNotificationSettings = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil) application.registerUserNotificationSettings(settings) } }


Aynı zamanda aşağıdaki kod AppDelegate içinde çağırılmalıdır;

Objective-C
Swift

Bu noktadan sonra kullanıcının karşısına uzaktan uyarı mesajları ile ilgili bir bildiri gelecektir. Kullanıcı mesaj almayı kabul eder ve cihaz başarıyla APNS’e kayıt olursa AppDelegate içerisinde aşağıdaki metod uyarılır;

application:didRegisterForRemoteNotificationsWithDeviceToken: metodunda deviceToken değişkeni APNS tarafından gönderilen tanımlayıcı koddur. Bu kod alındıktan sonra EuroMobile instance içerisinde yer alan registerToken: metodu çağırılır ve token değerinin EuroMobile sistemine kayıt edilmesi sağlanır.

Eğer cihaz kayıt sırasında bir hata alırsa aşağıdaki metod bu hatanın ne olduğunu bildirir.

EuroMobile instance aşağıdaki şekilde aktif edilir;

 

Kullanıcıya ait ek parametreler biliniyorsa kayıt aşamasında ya da sonrasında aşağıdaki gibi eklenebilir. Kullanıcı token eşleşmesi sağlamak için setUserKey methodunda referans kolon bilgisininin (KEY_ID veya EMAIL) gönderilmesi gereklidir. Bu method sayesinde subscribe işlemi için extra parametresine değerler eklenmiş olur ve kullanıcının hangi token ile eşleştirileceği belirtilmiş olur. Extra parametresi hakkında ek olarak Push Uygulamaları Tanımlama  bilgi alınabilir.


Herhangi bir adımda yeni bir parametre ekler ve bunları RMC sunucusuna göndermeniz gerekirse (örn.kullanıcı login olması) synchronize metodunu çağırmanız yeterli olacaktır. Uygulama açılış ve kapanışlarında bu metod otomatik olarak çalıştırılır.

 

IYS E-Posta Kaydı

Eğer kullanıcınız kurumsal bir hesap ise TACIR olarak göndermeniz gerekmektedir. Bunun için registerEmail metodunda bulundan isCommercial parametresini true olarak değiştiriniz.

Objective-C

Swift

 


Cihaz uzaktan bir uyarı geldiğinde application:didReceiveRemoteNotification: mesajını uyarır. Burada gelen mesaj içeriği Pigeon instance içinde yer alan handlePush:  metoduna verilmelidir. Bu metod okundu bilgisinin iletilmesi içindir.

 


Eğer iOS 8 ve sonrası bir sistem kullanılıyorsa aşağıdaki metodun çağırılması tavsiye edilir. Bu sayede arkaplanda gelen mesajlar da işlenebilecektir (background push).

 



Push Kampanyası Cirolarının Panele Yansıması

Gelen push bildirimine tıkladıktan sonra yapılan satın almanın RMC panelinde Ciro alanına yansıması için aşağıdaki metodu kullanmanız gerekmektedir.

  1. Push ekranında bulunan Özel Parametreler alanına utm parametrelerini girmelisiniz.
    Örn: utm_medium=apppush;utm_source=related;utm_campaign=campaign_name
    Not: utm_campaign her seferinde farklı olması gerektiği için oluşturduğunuz push kampanyasının ID’sini değişken olarak kullanabilirsiniz. Bunun için <##CAMP_ID##> değişkenini isteğe bağlı bir şekilde kullanabilirsiniz.

     

  2. Push bildirimi tıklandıktan sonra size aşağıdaki gibi bir data dönecektir.

    Örnek Data:

  3. Bu datayı aynı deeplink kullanımında olduğu gibi handle ederek utm parametrelerini pusha tıklandığında Visilabs’e event olarak göndermelisiniz. Örnek Visilabs event kodlarını alt satırda bulabilirsiniz.

    Objective-C


    Swift

 





Cihazın kayıt edilmesi sırasında bir problem oluşursa bu metod uyarılır. Sorunun sebebi error bölümünde yer alır.





Sistemden resimli bir mesaj geldiğinde mesajla ilgili resim image değişkeninde NSData tipinde iletilir. Mesajın içeriği message değişkeninde saklıdır.







Cihaz sisteme başarılı bir şekilde kayıt edildiğinde bu metod uyarılır.





Sistemden bir mesaj gönderildiğinde bu metod uyarılır. Mesajın içeriği message değişkeninde gönderilir.  



Message sınıfında kullanılabilecek değişkenler;





Değişken

Açıklama

Değişken

Açıklama

messageContent

Message

URL

An optional URL

params

Custom parameters

pushType

Push Type

altURL

Alternate URL

mediaUrl

Image and Video content URL

cId

Campaign id

sound

Sound name






RMC Personalization (visilabs)



Eğer uygulamanızda Personalization Center Suite’ini kullanıyorsanız ve okunan push mesajlarını Personalization Center’a iletmek isterseniz reportVisilabs: metodu ile bunu yapabilirsiniz. reportVisilabs: metodu Visilabs SDK’sı tarafından üretilen bir URL bekler ve aşağıdaki gibi kullanılır.








Ana Başlık: Euromessage SDK Entegrasyonu



Copyright 2020 Related Digital