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 (http://developer.apple.com/membercenter)
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.
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.Push bildirimi tıklandıktan sonra size aşağıdaki gibi bir data dönecektir.
Örnek Data:
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 |
---|---|
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