Kurulum ve hata ayıklama
Bu metodlar, OneSignal SDK’sını uygulamanıza entegre etmek için bir referanstır. Platforma özel tam kurulum talimatları için Mobil SDK kurulumu sayfasına bakın.initialize()
OneSignal SDK’sını başlatır. Bu, uygulama başlangıcında çağrılmalıdır. ONESIGNAL_APP_ID, Anahtarlar ve Kimlikler bölümünde bulunabilir.
OneSignal SDK’sının başlatılmasını geciktirmek istiyorsanız, Gizlilik metodlarımızı kullanmanızı öneririz.
setLogLevel()
Android LogCat veya Xcode günlüklerine ek günlükler yazdırmak için günlük kaydını ayarlar.
Bunu OneSignal’i başlatmadan önce çağırın. Daha fazla ayrıntı için Hata Ayıklama Günlüğü Alma sayfasına bakın.
setAlertLevel()
Uygulamanızda uyarı diyalogları olarak gösterilecek günlük kaydı seviyesini ayarlar. Bunu uygulama mağazasına göndermeden önce kaldırdığınızdan emin olun.
Kullanıcı kimliği ve özellikleri
Kullanıcılar uygulamanızı açtığında, OneSignal otomatik olarak bir OneSignal ID (kullanıcı seviyesi) ve bir Abonelik ID’si (cihaz seviyesi) oluşturur. Benzersiz kullanıcı tanımlayıcınızlalogin() metodunu çağırarak birden fazla aboneliği (örneğin, cihazlar, e-postalar, telefon numaraları) tek bir kullanıcıyla ilişkilendirebilirsiniz.
Daha fazla ayrıntı için Kullanıcılar ve Takma Adlar sayfalarına bakın.
login(external_id)
Kullanıcı bağlamını sağlanan external_id’ye ayarlar. Bu external_id ile ilişkili tüm aboneliklerin ve özelliklerin tek bir onesignal_id altında birleştirilmesini sağlar. Daha fazla ayrıntı için Kullanıcılar sayfasına bakın.
Ana davranışlar:
external_idzaten mevcutsa, SDK o kullanıcıya geçer. Oturum açmadan önce toplanan anonim veriler birleştirilmez ve atılır.external_idmevcut değilse, yerel durum mevcutonesignal_idaltında kaydedilir. Kullanıcı anonim durumdayken toplanan tüm veriler saklanır.- SDK, ağ hatası veya sunucu hatası durumunda otomatik olarak yeniden dener.
Harici Kimliğin ayarlandığından ve aboneliğin kullanıcıya bağlı olduğundan emin olmak için kullanıcı uygulamayı her açtığında bu metodu çağırın.
logout()
Mevcut kullanıcıyı abonelikten ayırır.
- Mevcut push aboneliğinden
external_id’yi kaldırır. - OneSignal ID’sini yeni bir anonim kullanıcıya sıfırlar.
- Artık tüm yeni veriler (örneğin etiketler, Abonelikler, oturum verileri vb.)
loginmetoduyla tanımlanana kadar yeni anonim kullanıcı üzerinde ayarlanacaktır.
Aboneliği yeni bir anonim kullanıcıya ayarlamak istiyorsanız, kullanıcı uygulamanızdan çıkış yaptığında bunu kullanın.
getOnesignalId()
Cihazda yerel olarak kaydedilmiş mevcut kullanıcının OneSignal ID’sini alır. Kullanıcı durumu başlatılmadan önce çağrılırsa null olabilir. Bunun yerine, kullanıcı durumu değişikliklerini dinlemek için Kullanıcı Durumu addObserver() kullanın.
getExternalId()
Cihazda yerel olarak kaydedilmiş mevcut kullanıcının Harici Kimliğini alır. login metodu aracılığıyla ayarlanmadıysa veya kullanıcı durumu başlatılmadan önce çağrılırsa null olabilir. Bunun yerine, kullanıcı durumu değişikliklerini dinlemek için Kullanıcı Durumu addObserver() kullanın.
addObserver() kullanıcı durumu
Kullanıcı bağlamındaki değişiklikleri dinler (örneğin, oturum açma, oturum kapatma, kimlik ataması).
addAlias(), addAliases(), removeAlias(), removeAliases()
Takma adlar alternatif tanımlayıcılardır (kullanıcı adları veya CRM kimlikleri gibi).
- Takma ad eklemeden önce
login()ileexternal_id’yi ayarlayın.external_idolmayan aboneliklere eklenen takma adlar birden fazla abonelik arasında senkronize olmaz. - Ayrıntılar için Takma Adlar sayfasına bakın.
setLanguage()
Kullanıcının otomatik olarak algılanan dilini geçersiz kılar. ISO 639-1 dil kodunu kullanın.
Özel etkinlikler
Özel bir etkinlik aracılığıyla Yolculukları Tetikleme ve Bekle Adımı aktivasyonu.Özel etkinlikler hala beta aşamasındadır ve uygulamanızdan tetiklenmesi için SDK’nın aşağıdaki sürümlerini gerektirir:
- iOS yerel SDK,
5.4.0-alpha-01sürümünden itibaren kullanılabilir - Android yerel SDK,
5.3.0-alpha-01sürümünden itibaren kullanılabilir - React-native SDK,
5.3.0-beta-01sürümünden itibaren kullanılabilir - Flutter SDK,
5.4.0-beta-01sürümünden itibaren kullanılabilir - Unity SDK,
5.2.0-beta-01sürümünden itibaren kullanılabilir
name- Gerekli. Etkinliğin adı string olarak.properties- İsteğe bağlı. Etkinliğe eklenecek anahtar-değer çiftleri. Özellikler sözlüğü veya haritası geçerli bir JSON Nesnesine serileştirilebilir olmalıdır. İç içe değerleri destekler.
os_sdk anahtarı altında uygulamaya özel verileri özelliklere otomatik olarak dahil eder. Örneğin, etkinlikleri cihaz türüne göre hedeflemek için os_sdk.device_type değerine erişirsiniz.
json
trackEvent()
Daha fazla ayrıntı için Özel Etkinlikler sayfasına bakın.
Veri etiketleri
Etiketler, olaylara veya kullanıcı özelliklerine göre kullanıcılar üzerinde ayarladığınız özelanahtar : değer çiftleri string verileridir. Daha fazla ayrıntı için Veri Etiketleri sayfasına bakın.
addTag(), addTags()
Mevcut kullanıcıya tek veya birden fazla etiket ayarlar.
- Anahtar zaten mevcutsa değerler değiştirilir.
- Planınızın etiket sınırını aşmak işlemlerin sessizce başarısız olmasına neden olur.
removeTag(), removeTags()
Mevcut kullanıcıdan tek veya birden fazla etiketi siler.
getTags()
Kullanıcının etiketlerinin yerel kopyasını döndürür. Etiketler login() veya yeni uygulama oturumları sırasında sunucudan güncellenir.
Gizlilik
setConsentRequired()
Veri toplama başlamadan önce kullanıcı onayını zorunlu kılar. SDK’yı başlatmadan önce çağrılmalıdır.
setConsentGiven()
Veri toplama için kullanıcı onayını verir veya iptal eder. Onay olmadan OneSignal’e hiçbir veri gönderilmez ve hiçbir abonelik oluşturulmaz.
setConsentRequired()trueise, SDK’mızsetConsentGiventrueile çağrılana kadar tam olarak etkinleştirilmez.setConsentGiventrueolarak ayarlanmışsa ve bir Abonelik oluşturulmuşsa, daha sonrafalseolarak ayarlanırsa, bu Abonelik artık güncellemeler almaz. Bu Abonelik için mevcut veriler,setConsentGiventekrartrueolarak ayarlanana kadar değişmeden kalır.- Kullanıcı ve/veya Abonelik verilerini silmek istiyorsanız, Kullanıcıyı sil veya Aboneliği sil API’lerimizi kullanın.
Konum
Konum noktalarını izlemek 3 adım gerektirir:- Uygulamanıza konum izleme izinleri ve bağımlılıkları ekleyin.
- iOS: İstenecek Konum Hizmetleri Yetkilendirmesini Seçme geliştirici kılavuzu
- Android: Konum izinleri isteme geliştirici kılavuzu
LocationManager.startGetLocation: mümkün değil, konum bağımlılığı bulunamadıUygulamanızın bağımlılıklarını kontrol edin. Yaygın bir çözüm
app/build.gradle dosyanıza şunu eklemektir: implementation 'com.google.android.gms:play-services-location:21.0.1'
Location.setShared()metodunu kullanarak uygulamanızın OneSignal ile konum paylaşmasını etkinleştirin.Location.requestPermissionmetoduyla veya uygulama içi mesajları kullanarak kullanıcıdan konum izleme izni isteyin.
setShared() konum
SDK’mızın Aboneliğin enlem ve boylamını izlemeye başlamasına izin vermek için bu metodu kullanın. Önce uygulamanızda uygun konum izinlerini ayarladığınızdan emin olun.
requestPermission() konum
Kullanıcılarınıza sistem düzeyinde konum izni istemini göstermek için bu metodu kullanın veya bunun yerine uygulama içi mesajları kullanın. Uygulamanızda uygun konum izinlerini ayarladığınızdan ve uygulamanızın OneSignal ile konum paylaşmasını etkinleştirdiğinizden emin olun.
Abonelikler
Daha fazla ayrıntı için Abonelikler sayfasına bakın.User.pushSubscription.id
Cihazda yerel olarak kaydedilmiş mevcut kullanıcının push Abonelik Kimliğini alır. Çok erken çağrılırsa null döndürebilir. Değişikliklere tepki vermek için bu veriyi abonelik gözlemcisi içinde almanız önerilir.
User.pushSubscription.token
Mevcut push abonelik belirtecini döndürür. Çok erken çağrılırsa null döndürebilir. Değişikliklere tepki vermek için bu veriyi abonelik gözlemcisi içinde almanız önerilir.
addObserver() push abonelik değişiklikleri
Şu gibi push abonelik değişikliklerine yanıt vermek için bu metodu kullanın:
- Cihaz Google (FCM) veya Apple (APNs)‘den yeni bir push belirteci alır
- OneSignal bir abonelik kimliği atar
optedIndeğeri değişir (örneğinoptIn()veyaoptOut()çağrıldı)- Kullanıcı sistem ayarlarında push iznini değiştirir, ardından uygulamayı açar
onPushSubscriptionChange olayını tetikler. Dinleyiciniz, neyin tam olarak değiştiğini tespit edebilmeniz için previous ve current değerlerini içeren bir durum nesnesi alır.
Güncellemeleri dinlemeyi durdurmak için ilişkili removeObserver() veya removeEventListener() metodunu çağırın.
optOut(), optIn(), optedIn
Mevcut push Aboneliğinin abonelik durumunu (abone olundu veya abonelikten çıkıldı) kontrol eder. Uygulamanızda push abonelik durumunu kontrol etmek için bu metodları kullanın. Yaygın kullanım durumları: 1) Oturumu kapatan kullanıcılara push gönderilmesini önleyin. 2) Uygulamanızda bir bildirim tercih merkezi uygulayın.
optOut(): Mevcut push abonelik durumunu abonelikten çıkıldı olarak ayarlar (kullanıcının geçerli bir push belirteci olsa bile).optIn(): Üç eylemden birini yapar:- Aboneliğin geçerli bir push belirteci varsa, mevcut push abonelik durumunu
abone olunduolarak ayarlar. - Aboneliğin geçerli bir push belirteci yoksa, push izin istemini görüntüler.
- Push izin istemi işletim sisteminin sınırından fazla görüntülendiyse (iOS’ta bir kez, Android’de iki kez), yedek istemi görüntüler.
- Aboneliğin geçerli bir push belirteci varsa, mevcut push abonelik durumunu

Ayarlar istemine geri dönüş
optedIn: Mevcut push abonelik durumu abone olundu isetruedöndürür, aksi takdirdefalse. Push belirteci geçerliyse ancakoptOut()çağrıldıysa, bufalsedöndürür.
addEmail(), removeEmail()
Mevcut kullanıcıya/kullanıcıdan bir e-posta Aboneliği (e-posta adresi) ekler veya kaldırır. Doğru kullanıcı bağlamını ayarlamak için login() sonrasında addEmail çağırın. Kimlik Doğrulama ile uyumludur.
addSms(), removeSms()
Mevcut kullanıcıya/kullanıcıdan bir SMS Aboneliği (telefon numarası) ekler veya kaldırır. E.164 formatı gerektirir. Doğru kullanıcı bağlamını ayarlamak için login() sonrasında addSms çağırın. Kimlik Doğrulama ile uyumludur.
Push izinleri
requestPermission(fallbackToSettings) push
Kullanıcıdan push bildirim izni isteyen yerel sistem istemini gösterir. İsteğe bağlı olarak ayarlar uygulamasına bağlantı veren bir yedek istem etkinleştirin.
fallbackToSettings:trueise, kullanıcı işletim sisteminin sınırından fazla push izinlerini reddettiyse (iOS’ta bir kez, Android’de iki kez) yedek istem görüntülenir.

İzin engellendiğinde ayarlara geri dönüş istemi
Daha fazla bilgi için Push İzinleri için İstem sayfasına bakın.
addPermissionObserver() push
Şu gibi push izin değişikliklerini izlemek için bu metodu kullanın:
- Bildirim izin istemi kullanıcıya görüntülenir.
- Kullanıcı izin istemini kabul eder veya reddeder.
- Kullanıcı cihazın uygulama ayarlarında uygulamanız için bildirimleri etkinleştirir veya devre dışı bırakır ve ardından uygulamanıza geri döner.
onOSPermissionChanged olayını tetikler. Dinleyiciniz, neyin tam olarak değiştiğini tespit edebilmeniz için from ve to değerlerini içeren bir durum nesnesi alır.
Güncellemeleri dinlemeyi durdurmak için ilişkili removePermissionObserver() metodunu çağırın.
getPermission(), getCanRequestPermission()
getPermission(), uygulama düzeyinde mevcut push izin durumunu döndürür. Kullanıcılar ve Abonelikler API’lerinde optOut() veya enabled parametresi aracılığıyla değiştirdiyseniz OneSignal düzeyinde abonelik durumunu dikkate almaz. getPermission() kullanmak yerine, uygulama çalışırken cihazın bildirim izin durumundaki değişiklikleri izlemek için Push İzin Gözlemcisini veya push abonelik durumundaki değişiklikleri izlemek için Push Abonelik Gözlemcisini kullanmanızı öneririz.
getCanRequestPermission(), izin isteme girişiminin kullanıcıya bir istemin gösterilmesiyle sonuçlanıp sonuçlanmayacağını döndürür. false ise, kullanıcı zaten izni reddetmiştir ve ya yedek istem gösterilebilir ya da hiç istem gösterilmez. Daha fazla bilgi için Push izinleri için istem sayfasına bakın.
permissionNative iOS
iOS cihazının yerel izni için bir enum döndürür. Şunlardan biri olacaktır:
0= NotDetermined (Belirlenmedi)1= Denied (Reddedildi)2= Authorized (Yetkilendirildi)3= Provisional (yalnızca iOS 12+ sürümlerinde kullanılabilir)4= Ephemeral (yalnızca iOS 14+ sürümlerinde kullanılabilir)
Push bildirim olayları
addClickListener() push
Kullanıcı uygulamayı açan bir push bildirimine tıkladığında çalışan bir geri çağırma ayarlar.
Bu olay tetiklendiğinde uygulamanın etkinliği veya sahnesi zaten başlatılmıştır. Herhangi bir özel mantık gerçekleştirmek için bu işleyiciyi kullanın — uygulama navigasyonunu manuel olarak yeniden başlatmayın veya çoğaltmayın.
İşleyici artık gerekmediğinde dinlemeyi durdurmak için removeClickListener() veya removeEventListener() kullanın.
addForegroundLifecycleListener() push
Uygulama ön planda olduğunda bildirimlerin nasıl davrandığını kesmenize ve kontrol etmenize olanak tanır.
Varsayılan olarak, OneSignal bildirimi otomatik olarak görüntüler. Bu davranışı event.preventDefault() kullanarak geçersiz kılabilir ve şunları yapabilirsiniz:
- Bildirimi bastırma
- Özelleştirme
- Eşzamansız mantık için görüntülemeyi geciktirme (örneğin, kullanıcı durumunu alma, olayları kaydetme)
event.notification.display() çağırın.
Bu, görüntülemeden önce yükü değiştiren Bildirim Hizmeti Uzantılarından sonra çalışır.
removeForegroundLifecycleListener() veya removeEventListener() kullanın.
clearAllNotifications()
Removes all OneSignal notifications from the Notification Shade. Use instead of Android’s android.app.NotificationManager.cancel. Otherwise, the notifications will be restored when your app is restarted.
removeNotification() Android
Android bildirim kimliğine dayalı olarak tek bir bildirimi iptal eder.
Android’in android.app.NotificationManager.cancel yerine kullanın. Aksi takdirde, uygulamanız yeniden başlatıldığında bildirim geri yüklenecektir.
removeGroupedNotifications() Android
Cancel a group of OneSignal notifications with the provided group key. Grouping notifications is a OneSignal concept. There is no android.app.NotificationManager equivalent.
Uygulama İçi Mesajlar
Uygulama içi mesajlar herhangi bir kod gerektirmez; ancak SDK, mesajların ne zaman sunulacağını özelleştirmenize ve yaşam döngüsü olaylarını yönetmenize olanak tanır.addTrigger(), addTriggers()
Tek veya birden fazla tetikleyiciye dayalı olarak bir Uygulama İçi Mesajın ne zaman görüntüleneceğine karar verin. Daha fazla bilgi için Tetikleyiciler sayfasına bakın.
Tetikleyiciler arka uca kalıcı olarak kaydedilmez. Yalnızca yerel cihazda bulunurlar ve mevcut kullanıcı için geçerlidir.
removeTrigger(), removeTriggers(), clearTriggers()
Sağlanan anahtarla mevcut kullanıcıdan tek, birden fazla veya tüm tetikleyicileri kaldırır.
paused
Uygulama içi mesajların kullanıcıya görüntülenmesini engeller. true olarak ayarlandığında, hiçbir uygulama içi mesaj sunulmaz. false olarak ayarlandığında, kullanıcının uygun olduğu herhangi bir mesaj uygun zamanda kendilerine sunulur.
addLifecycleListener()
Görüntülenen ve kapatılan Uygulama İçi Mesajlara yanıt verir veya bunları izler.
addClickListener() uygulama-içi
Uygulama içi mesaj tıklama olaylarına yanıt verir. Olay aşağıdaki tıklama eylemi meta verilerini içerir:
actionId: Öğe üzerinde ayarladığınız özel bir tanımlayıcı.urlTarget: Mesaj için başlatma URL’sinin nasıl sunulacağını belirten bir enum.url: Eylem için başlatma URL’si, varsa.closingMessage: Eylemin mesajın kapatılmasına neden olup olmadığını gösteren bir boolean değeri.
Canlı Aktivite
Uygulamalar, kullanıcıların Canlı Aktivitelere katılmalarına izin vermelidir. Örneğin, uygulamanız kullanıcıya bir düğme kullanarak veya bir IAM sunarak ABD içinde Canlı Aktiviteyi başlatma seçeneği sunar. Bildirim İzni veya Konum İzninin aksine, açık bir istem olmadan herhangi bir yöntemle bir Canlı Aktivite başlatabilir ve güncelleyebilirsiniz. Canlı Aktiviteler iOS Geçici Yetkilendirme kullanıcı arayüzü ile görünür. Canlı Aktiviteler, uygulamanız ön plandayken başlatılmalıdır. Canlı Aktiviteler hakkında daha fazla bilgi edinmek için Apple’ın geliştirici yönergelerini okumanızı öneririz.setup()
OneSignal’in uygulama adına bir LiveActivity yaşam döngüsünü yönetmesine izin verir. Bu, hem pushToStart belirteç güncellemelerini hem de pushToUpdate belirteç güncellemelerini dinlemeyi içerir.
setupDefault()
Müşteri uygulamasının kendi ActivityAttributes’ını tanımlama ve yönetme ihtiyacını ortadan kaldırarak platformlar arası SDK’ların bir LiveActivity yaşam döngüsünü yönetmesine izin verir. Daha fazla ayrıntı için Platformlar arası kurulum sayfasına bakın.
enter()
Bir Canlı Aktiviteye girme, sunucumuzda bir activityId’yi bir Canlı Aktivite Geçici Push Belirteci ile ilişkilendirir. Bir veya birden fazla Canlı Aktiviteyi aynı anda güncellemek için Canlı Aktiviteleri Güncelle REST API’sini kullanırken bu tanımlayıcıyı belirtin.
exit()
Bir Canlı aktiviteden çıkma, sunucumuzda bir Aktivite Tanımlayıcısı ile Canlı Aktivite push belirteci arasındaki ilişkiyi siler.
setPushToStartToken()
Canlı aktiviteleri başlatmak için push için isteğe bağlı “düşük seviyeli” yaklaşım. ActivityAttribute yapısını değiştirmeden LiveActivity başlatma ve güncelleme belirteçleri üzerinde hassas kontrol sunar. Ek ayrıntılar burada mevcuttur