Ana içeriğe atla

Kurulum ve hata ayıklama

OneSignal çağrılarınızı OneSignalDeferred.push(async function() { ... }) ile sarma ihtiyacını fark edebilirsiniz function() içine istediğiniz kadar yöntem ekleyebilirsiniz. OneSignal SDK, sayfanızda defer özniteliği ile yüklenir. Örneğin: <script src="https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js" defer></script> Bu, OneSignal kodunun HTML belgesi tamamen ayrıştırıldıktan sonra çalışacağı anlamına gelir ve OneSignal SDK’nın siteyi bloke etmesini önler. Ancak bu, OneSignalDeferred değişkeninin var olmasına bağlı olan sayfa betikleri için bir sorun oluşturur. Bunu çözmek için, OneSignal’i sitenize eklediğinizde şununla başlamalıdır: window.OneSignalDeferred = window.OneSignalDeferred || []; Bu bir OneSignalDeferred değişkeni oluşturur ve OneSignal zaten yüklenmişse, yüklenen örneğe atanır. Aksi takdirde, OneSignal değişkeni boş bir diziye eşittir - []. Tüm dizilerin bir .push() fonksiyonu vardır, bu noktada OneSignalDeferred değişkeni basitçe üzerine ittiğimiz fonksiyonların bir dizisidir. SDK sonunda yüklendiğinde, SDK şu ana kadar itilen tüm fonksiyonları işler ve .push()‘u yeniden tanımlar.

init()

OneSignal SDK’yı başlatır. Bu, sitenizin her sayfasında <head> etiketinde bir kez çağrılmalıdır. ONESIGNAL_APP_ID, Anahtarlar ve ID’ler’de bulunabilir.
OneSignal SDK’nın başlatılmasını geciktirmek istiyorsanız, Gizlilik yöntemlerimizi kullanmanızı öneririz.
window.OneSignalDeferred = window.OneSignalDeferred || [];
OneSignalDeferred.push(async function(OneSignal) {
  await OneSignal.init({
    appId: "ONESIGNAL_APP_ID",
  });
});
Init seçenekleri yalnızca Özel Kod Kurulumu ile çalışır. Aksi takdirde, bunlar OneSignal kontrol panelinde yapılandırılır.
ParametreTürAçıklama
appIdStringGerekli: Anahtarlar ve ID’ler’de bulunan OneSignal Uygulama ID’niz.
requiresUserPrivacyConsentBooleanKullanıcı gizlilik onayı sağlayana kadar SDK başlatmayı geciktirir. Kurulumu tamamlamak için setConsentGiven() çağrılmalıdır.
safari_web_idStringYüklenen Safari .p12 sertifikanız için Safari Web ID’si. Web Hızlı Başlangıç.
promptOptionsObjectİzin istemlerini özelleştirin. Aşağıdaki detaylar.
notifyButtonObjectAbonelik Zilini etkinleştirin ve yapılandırın. Aşağıdaki detaylar.
welcomeNotificationObjectHoş geldin bildirimini özelleştirin veya devre dışı bırakın. Aşağıdaki detaylar.
persistNotificationBooleanChrome (yalnızca masaüstü) - true: bildirim tıklanana kadar kalır, false: kısa süre sonra kaybolur. Firefox/Safari bu ayarı yok sayar.
webhooksObjectOlay callback’lerini yapılandırın. Webhook’lara Bakın.
autoResubscribeBooleanÖnerilir: Tarayıcı önbelleğini temizleyen veya OneSignal’e geçiş yapan kullanıcıları otomatik olarak yeniden abone eder. Kodda kullanılırsa kontrol paneli ayarını geçersiz kılar.
notificationClickHandlerMatchString"exact" (varsayılan): tam URL eşleşmesi olan sekmeye odaklanır. "origin": aynı alan adına sahip herhangi bir sekmeye odaklanır.
notificationClickHandlerActionString"navigate" (varsayılan): launchURL’ye gider. "focus": mevcut sekmeye odaklanır (yalnızca "origin" eşleşmesi ile kullanılır).
serviceWorkerParamObjectService worker’ın scope’unu ayarlayın. Uygulanabilirse diğer service worker’ın scope’undan farklı olmalıdır. Örnek:
{ scope: "/myPath/myCustomScope/" }
serviceWorkerPathStringOneSignal service worker dosyasının konumunu ayarlayın. Örnek:
"myPath/OneSignalSDKWorker.js"

promptOptions parametreleri

Kullanıcı izin istemlerini yerelleştirmek veya özelleştirmek için promptOptions kullanın. Tüm alanlar isteğe bağlıdır.
ParametreTürAçıklama
slidedownObjectYapılandırma seçenekleriyle prompts dizisi içerir.
promptsArray of Objectsİstem yapılandırmaları dizisi. Örnek:
"slidedown": { "prompts": [{...}, {...}] }
typeStringİstem türleri:
  • push – Slide İstemi (kategori yok)
  • category – 10’a kadar kategoriyle Slide İstemi
  • email – Yalnızca e-posta toplama
  • sms – Yalnızca telefon numarası toplama
  • smsAndEmail – Her ikisini de toplama
Web İzin İstemleri’ne bakın.
autoPromptBoolean
  • true: delay’e göre göster.
  • false: istem yalnızca Slidedown API aracılığıyla manuel olarak gösterilir.
delayObjectOtomatik istemin ne zaman gösterileceğini kontrol eder:
{ pageViews: 3, timeDelay: 20 } = 3. sayfa görüntüleme ve 20s bekleme sonrası göster.
textObjectÖzel metin seçenekleri:
  • actionMessage (maks 90 karakter)
  • acceptButton (maks 15)
  • cancelButton (maks 15)
  • emailLabel, smsLabel, confirmMessage
  • updateMessage, positiveUpdateButton, negativeUpdateButton (kategorileri veya iletişim bilgilerini güncellemek için kullanılır)
categoriesArray of ObjectsYalnızca type: category için. Her nesne şunları içerir:
tag: dahili anahtar
label: kullanıcı tarafından görülebilir ad
Örnek: [ {tag: "local_news", label: "Local News"} ]. Veri Etiketleri’ne bakın.

notifyButton parametreleri

Sayfada gösterilen Abonelik Zili’ni (bildirim düğmesi) yapılandırın.
ParametreTürAçıklama
enableBooleanAbonelik Zili’ni etkinleştirir. Varsayılan olarak devre dışı.
displayPredicateFunctionZili göstermek/gizlemek için true veya false döndüren özel fonksiyon (veya Promise). Gösterildiğinde bir kez değerlendirilir.
sizeString'small', 'medium' veya 'large'. Abonelikten sonra 'small'’a küçülür.
positionString'bottom-left' veya 'bottom-right'.
offsetObjectCSS piksel ofsetleri: { bottom: '50px', left: '10px' }
prenotifyBooleantrue ise, “1 okunmamış” ikonu ve özel hover metni gösterir.
showCreditBooleanPopup’ta “Powered by OneSignal“‘i gizlemek için false olarak ayarlayın.
textObjectZil UI’ı için özel metin.

welcomeNotification parametreleri

İlk kez abonelikten sonra gönderilen hoş geldin bildirimini özelleştirin.
ParametreTürAçıklama
disableBooleanHoş geldin bildirimini devre dışı bırak.
messageStringGerekli: Bildirim mesajı. Boşsa varsayılan olarak 'Thanks for subscribing!' olur.
titleStringBildirim başlığı. Varsayılan olarak site başlığı. Kaldırmak için ' ' (boşluk) kullanın (önerilmez).
urlURLKullanıcı bildirime tıkladığında açılacak isteğe bağlı URL. Genellikle gerekli değildir.

Örnek:
<script src="https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js" defer></script>
<script>
window.OneSignalDeferred = window.OneSignalDeferred || [];
OneSignalDeferred.push(async function(OneSignal) {
  await OneSignal.init({
    appId: "YOUR_APP_ID",
    safari_web_id: "YOUR_SAFARI_WEB_ID",
    notifyButton: {
      enable: true,
    },
    promptOptions: {
      slidedown: {
        prompts: [{
            type: "smsAndEmail",
            autoPrompt: false,
            text: {
              emailLabel: "Insert Email Address",
              smsLabel: "Insert Phone Number",
              acceptButton: "Submit",
              cancelButton: "No Thanks",
              actionMessage: "Receive the latest news, updates and offers as they happen.",
              updateMessage: "Update your push notification subscription preferences.",
              confirmMessage: "Thank You!",
              positiveUpdateButton: "Save Preferences",
              negativeUpdateButton: "Cancel",
            },
            delay: {
              pageViews: 1,
              timeDelay: 20
            },
          },
          {
            type: "category",
            autoPrompt: true,
            text: {
              actionMessage: "We'd like to show you notifications for the latest news and updates.",
              acceptButton: "Allow",
              cancelButton: "Cancel",

              /* CATEGORY SLIDEDOWN SPECIFIC TEXT */
              negativeUpdateButton: "Cancel",
              positiveUpdateButton: "Save Preferences",
              updateMessage: "Update your push notification subscription preferences.",
            },
            delay: {
              pageViews: 3,
              timeDelay: 20
            },
            categories: [{
                tag: "politics",
                label: "Politics"
              },
              {
                tag: "local_news",
                label: "Local News"
              },
              {
                tag: "world_news",
                label: "World News",
              },
              {
                tag: "culture",
                label: "Culture"
              },
            ]
          }
        ]
      }
    }
  });
});
</script>

setLogLevel()

Konsola ek loglar yazdırmak için loglama ayarlayın. Daha fazla ayrıntı için Tarayıcı DevTools ile Hata Ayıklama’ya bakın.
JavaScript
  OneSignal.Debug.setLogLevel('trace');
Log seviyeleri:
  • 'trace'
  • 'debug'
  • 'info'
  • 'warn'
  • 'error'

Kullanıcı kimliği ve özellikleri

Kullanıcılarınız web sitenizde push bildirimlerine abone olduğunda, OneSignal otomatik olarak bir OneSignal ID (kullanıcı düzeyinde) ve bir Abonelik ID (cihaz düzeyinde) oluşturur. Benzersiz kullanıcı tanımlayıcınızla login() çağrısı yaparak 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’a 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’a bakın. Temel davranışlar:
  • external_id zaten varsa, SDK o kullanıcıya geçer. Giriş öncesi toplanan anonim veriler birleştirilmez ve atılır.
  • external_id yoksa, yerel durum mevcut onesignal_id altında kaydedilir. Kullanıcı anonimken toplanan tüm veriler saklanır.
  • SDK, ağ hatası veya sunucu hatası durumunda otomatik olarak yeniden dener.
External ID’nin ayarlandığından ve aboneliğin kullanıcıya bağlandığından emin olmak için bu yöntemi kullanıcı siteyi her açtığında veya Abonelik değişikliği dinleyicisi içinde çağırın.
OneSignalDeferred.push(async function(OneSignal) {
   await OneSignal.login("external_id");
});

logout()

Mevcut kullanıcıyı abonelikten ayırır.
  • Mevcut push aboneliğinden external_id’yi kaldırır.
  • OneSignal ID’yi yeni bir anonim kullanıcıya sıfırlar.
  • Yeni veriler (örneğin etiketler, Abonelikler, oturum verileri vb.) artık login yöntemiyle tanımlanana kadar yeni anonim kullanıcı üzerinde ayarlanır.
Aboneliği yeni bir anonim kullanıcıya ayarlamak istiyorsanız, kullanıcı uygulamanızdan çıkış yaptığında bunu kullanın.
JavaScript
  OneSignalDeferred.push(async function(OneSignal) {
     await OneSignal.logout();
  });

OneSignal.User.onesignalId

Tarayıcıda yerel olarak kaydedilen mevcut kullanıcının OneSignal ID’sini alın. 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.
JavaScript
  OneSignal.User.onesignalId

OneSignal.User.externalId

Tarayıcıda yerel olarak kaydedilen mevcut kullanıcının External ID’sini alın. login yöntemi aracılığıyla ayarlanmamışsa 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.
JavaScript
  OneSignal.User.externalId

addEventListener() Kullanıcı Durumu

Kullanıcı bağlamındaki değişiklikleri dinleyin (örneğin, giriş, çıkış, ID atama).
JavaScript
  OneSignalDeferred.push(function() {
    OneSignal.User.addEventListener('change', function (event) {
      console.log('change', { event });
    });
  });

addAlias(), addAliases(), removeAlias(), removeAliases()

Takma adlar alternatif tanımlayıcılardır (kullanıcı adları veya CRM ID’leri gibi).
  • Takma ad eklemeden önce login() ile external_id ayarlayın. external_id olmadan aboneliklere eklenen takma adlar birden fazla abonelik arasında senkronize olmaz.
  • Ayrıntılar için Takma Adlar’a bakın.
JavaScript
  // Tek bir takma ad ekle
  OneSignal.User.addAlias("ALIAS_LABEL", "ALIAS_ID");

  // Birden fazla takma ad ekle
  OneSignal.User.addAliases({
    ALIAS_LABEL_01: "ALIAS_ID_01",
    ALIAS_LABEL_02: "ALIAS_ID_02",
    ALIAS_LABEL_03: "ALIAS_ID_03",
  });

  // Tek bir takma adı kaldır
  OneSignal.User.removeAlias("ALIAS_LABEL");

  // Birden fazla takma adı kaldır
  OneSignal.User.removeAliases(["ALIAS_LABEL_01", "ALIAS_LABEL_02", "ALIAS_LABEL_03"]);

getLanguage(), setLanguage()

Kullanıcının otomatik algılanan dilini alın ve/veya geçersiz kılın. Mevcut dil kodlarının listesi için Çok dilli mesajlaşma’ya bakın.
JavaScript
  // Şu anda giriş yapmış kullanıcının dilini al
  OneSignal.User.getLanguage()

  // Şu anda giriş yapmış kullanıcının dilini ayarla
  OneSignal.User.setLanguage('en')

Özel olaylar

Özel olay aracılığıyla Yolculukları Tetikleme ve Wait Until adım aktivasyonu.
Özel olaylar Web SDK 160500+ gerektirirÖzel olayların izlenmesi için bir kullanıcının giriş yapmış olması gerekir.
Mevcut kullanıcı tarafından gerçekleştirilen özel bir olayı izleyin ve gönderin.
  • name - Gerekli. Dize olarak olayın adı.
  • properties - İsteğe bağlı. Olaya eklenecek anahtar-değer çiftleri. Properties sözlüğü veya haritası geçerli bir JSON Nesnesine serileştirilebilir olmalıdır. İç içe değerleri destekler.
SDK, tüketilmek üzere mevcut olacak ayrılmış os_sdk anahtarı altında uygulamaya özel verileri otomatik olarak properties yüküne ekler. Örneğin, olayları abonelik türüne göre hedeflemek için os_sdk.type’a erişirsiniz.
json
{ 
  "os_sdk": {
    "device_os": "138",
    "type": "ChromePush",
    "device_model": "MacIntel",
    "sdk": "160500"
  }
}

trackEvent()

JavaScript
const properties = {
  "promo_code": "NEW50",
  "membership_details": {
     "vip": true,
     "products_viewed_count": 15,
  }
}
window.OneSignal.User.trackEvent('started_free_trial', properties);

// İlişkilendirilmiş ek özellikler olmadan bir olayı ada göre de izleyebilirsiniz
window.OneSignal.User.trackEvent('my_event_name');

Veri etiketleri

Etiketler, olaylara veya kullanıcı özelliklerine göre kullanıcılar üzerinde ayarladığınız özel key : value dize verisi çiftleridir. Daha fazla ayrıntı için Veri Etiketleri’ne bakın.

addTag(), addTags()

Mevcut kullanıcıya tek veya birden fazla etiket ayarlayın.
  • Anahtar zaten varsa değerler değiştirilir.
  • Planınızın etiket limitini aşmak, işlemlerin sessizce başarısız olmasına neden olur.
JavaScript
  // Tek bir etiket ekle
  OneSignal.User.addTag('tag_key', 'tag_value');

  // Birden fazla etiket ekle
  OneSignal.User.addTags({
   KEY_01: "VALUE_01",
   KEY_02: "VALUE_02",
   KEY_03: "VALUE_03"
  });

removeTag(), removeTags()

Mevcut kullanıcıdan tek veya birden fazla etiketi silin.
JavaScript
  // Tek bir etiketi sil
  OneSignal.User.removeTag("KEY");

  OneSignal.User.removeTags(['KEY_01', 'KEY_02', 'KEY_03']);

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.
JavaScript
  const tags = OneSignal.User.getTags()

Gizlilik

setConsentRequired()

Veri toplama başlamadan önce kullanıcı onayını zorunlu kılar. SDK’yı başlatmadan önce çağrılmalıdır. Bu yöntem, init yöntemine requiresUserPrivacyConsent: true eklemeyle aynıdır.
JavaScript
  OneSignal.setConsentRequired(true);

setConsentGiven()

Veri toplama için kullanıcı onayını verir veya geri alır. Onay olmadan, OneSignal’e hiçbir veri gönderilmez ve hiçbir abonelik oluşturulmaz.
  • setConsentRequired() veya requiresUserPrivacyConsent true olarak ayarlanırsa, SDK’mız setConsentGiven true ile çağrılana kadar tamamen etkinleştirilmez.
  • setConsentGiven true olarak ayarlanır ve bir Abonelik oluşturulursa, daha sonra false olarak ayarlanırsa, o Abonelik artık güncelleme almaz. O Abonelik için mevcut veriler, setConsentGiven tekrar true olarak 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.
JavaScript
  OneSignal.setConsentGiven(true);

Abonelikler

Daha fazla ayrıntı için Abonelikler’e bakın.

User.PushSubscription.id

Tarayıcıda yerel olarak kaydedilen mevcut kullanıcının push Abonelik ID’sini alın. Çok erken çağrılırsa null döndürebilir. Değişikliklere tepki vermek için bu veriyi abonelik gözlemleyicisi içinde almanız önerilir.
JavaScript
  OneSignal.User.PushSubscription.id;

User.PushSubscription.token

Mevcut push abonelik tokenını 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özlemleyicisi içinde almanız önerilir.
JavaScript
  OneSignal.User.PushSubscription.token;

addEventListener() push abonelik değişiklikleri

Bu yöntemi şunlar gibi push abonelik değişikliklerine yanıt vermek için kullanın:
  • Cihaz Google (FCM) veya Apple (APNs)‘tan yeni bir push token alır
  • OneSignal bir abonelik ID’si atar
  • optedIn değeri değişir (örneğin optIn() veya optOut() çağrıldı)
  • Kullanıcı sistem ayarlarında push iznini değiştirir, ardından uygulamayı açar
Bu olduğunda, SDK onPushSubscriptionChange olayını tetikler. Dinleyiciniz, tam olarak neyin değiştiğini algılayabilmeniz için previous ve current değerlerine sahip bir state nesnesi alır. Güncellemeleri dinlemeyi durdurmak için ilişkili removeObserver() veya removeEventListener() yöntemini çağırın.
JavaScript
  function pushSubscriptionChangeListener(event) {
    console.log("event.previous.id", event.previous.id);
    console.log("event.current.id", event.current.id);
    console.log("event.previous.token", event.previous.token);
    console.log("event.current.token", event.current.token);
    console.log("event.previous.optedIn", event.previous.optedIn);
    console.log("event.current.optedIn", event.current.optedIn);
  }

  OneSignalDeferred.push(function(OneSignal) {
    OneSignal.User.PushSubscription.addEventListener("change", pushSubscriptionChangeListener);
  });

optOut(), optIn(), optedIn

Mevcut push Aboneliğinin abonelik durumunu (subscribed veya unsubscribed) kontrol edin. Sitenizde push abonelik durumunu kontrol etmek için bu yöntemleri kullanın. Yaygın kullanım senaryoları: 1) Çıkış yapan kullanıcılara push gönderilmesini engelleyin. 2) Sitenizde bir bildirim tercih merkezi uygulayın.
  • optOut(): Mevcut push abonelik durumunu abonelikten çıkarılmış olarak ayarlar (kullanıcının geçerli bir push token’ı olsa bile).
  • optIn(): Üç eylemden birini yapar:
    1. Aboneliğin geçerli bir push token’ı varsa, mevcut push abonelik durumunu subscribed olarak ayarlar.
    2. Aboneliğin geçerli bir push token’ı yoksa, push izin istemini görüntülemeye çalışır.
  • optedIn: Mevcut push abonelik durumu abone ise true, aksi takdirde false döndürür. Push token geçerliyse ancak optOut() çağrıldıysa, bu false döndürür.
JavaScript
  OneSignal.User.PushSubscription.optOut();

  OneSignal.User.PushSubscription.optIn();

  var optedIn = OneSignal.User.PushSubscription.optedIn;

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()’den sonra addEmail çağırın. Kimlik Doğrulama ile uyumludur.
JavaScript
  OneSignal.User.addEmail("example@email.com");

  OneSignal.User.removeEmail("example@email.com");

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()’den sonra addSms çağırın. Kimlik Doğrulama ile uyumludur.
JavaScript
  OneSignal.User.addSms("+15558675309");

  OneSignal.User.removeSms("+15558675309");

Slidedown istemleri

Sitelerinizde çeşitli slidedown istemleri görüntüleyin. Daha fazla ayrıntı için Web izin istemleri’ne bakın.
  • Reddedilirse, gelecekteki çağrılar en az üç gün boyunca yok sayılır. Daha fazla reddetme, kullanıcıya tekrar sorulmadan önce geçmesi gereken süreyi uzatır.
  • Geri çekilme davranışını geçersiz kılmak için yönteme {force: true} geçirin. Ancak, iyi bir kullanıcı deneyimi sağlamak için eylemi düğme tıklaması gibi UI başlatımlı bir olaya bağlayın.
Bu, abonelik için gerekli Yerel Tarayıcı İsteminin yerini almaz. Yerel tarayıcı istemini kullanarak izinleri almanız gerekir.

promptPush()

Push bildirimleri için normal slidedown istemini görüntüler.
  • Kategoriler kullanıyorsanız, bunun yerine promptPushCategories() çağırın.
  • OneSignal tarafından ayarlanan geri çekilme mantığına tabidir. Daha fazla ayrıntı için Web izin istemleri’ne bakın.
JavaScript
  OneSignal.Slidedown.promptPush();
  // Test sırasında geri çekilme mantığını atlamak için {force: true} geçirin
  //OneSignal.Slidedown.promptPush({force: true});

promptPushCategories()

Kategori slidedown istemini görüntüler, kullanıcıların etiketlerini güncellemelerine izin verir. Kullanıcı henüz izin vermediyse yerel bildirim izin istemini de tetikler.
  • Kategoriler kullanmıyorsanız, bunun yerine promptPush() çağırın.
  • OneSignal tarafından ayarlanan geri çekilme mantığına tabidir. Daha fazla ayrıntı için Web izin istemleri’ne bakın.
JavaScript
  OneSignal.Slidedown.promptPushCategories();
  // Test sırasında geri çekilme mantığını atlamak için {force: true} geçirin
  //OneSignal.Slidedown.promptPushCategories({force: true});

promptSms()

SMS abonelik istemini görüntüler.
  • OneSignal tarafından ayarlanan geri çekilme mantığına tabidir. Daha fazla ayrıntı için Web izin istemleri’ne bakın.
JavaScript
  OneSignal.Slidedown.promptSms();
  // Test sırasında geri çekilme mantığını atlamak için {force: true} geçirin
  //OneSignal.Slidedown.promptSms({force: true});

promptEmail()

E-posta abonelik istemini görüntüler.
  • OneSignal tarafından ayarlanan geri çekilme mantığına tabidir. Daha fazla ayrıntı için Web izin istemleri’ne bakın.
JavaScript
  OneSignal.Slidedown.promptEmail();
  // Test sırasında geri çekilme mantığını atlamak için {force: true} geçirin
  //OneSignal.Slidedown.promptEmail({force: true});

promptSmsAndEmail()

SMS ve e-posta abonelik istemlerini aynı anda görüntüler.
  • OneSignal tarafından ayarlanan geri çekilme mantığına tabidir. Daha fazla ayrıntı için Web izin istemleri’ne bakın.
JavaScript
  OneSignal.Slidedown.promptSmsAndEmail();
  // Test sırasında geri çekilme mantığını atlamak için {force: true} geçirin
  //OneSignal.Slidedown.promptSmsAndEmail({force: true});

addEventListener() Slidedown

Slidedown istem gösterildi olayını algılamak için bir callback ekleyin.
JavaScript
  OneSignalDeferred.push(function(OneSignal) {

    OneSignal.Slidedown.addEventListener('slidedownShown', function (event) {
      console.log('slidedownShown', { event });
    });

  });

Push bildirimleri

requestPermission()

Yerel tarayıcı istemi aracılığıyla push bildirimleri izni ister. Tarayıcı tarafından ayarlanan geri çekilme mantığına tabidir. Daha fazla ayrıntı için Web izin istemleri’ne bakın.
JavaScript
  OneSignal.Notifications.requestPermission();

isPushSupported()

Mevcut tarayıcı web push’u destekliyorsa true döndürür.
JavaScript
  const isSupported = OneSignal.Notifications.isPushSupported();

OneSignal.Notifications.permission

Sitenin bildirimleri görüntüleme için mevcut iznini gösteren bir boolean döndürür.
  • true: Kullanıcı bildirimleri görüntüleme iznini vermiştir.
  • false: Kullanıcı bildirimleri görüntüleme iznini reddetmiş veya henüz vermemiştir.
Bu sadece sitenin iznidir, OneSignal’in optOut durumunu veya Abonelik ID ve Push Token varlığını hesaba katmaz, bunlar için OneSignal.User.PushSubscription’a bakın. İzindeki değişiklikleri dinlemek için permissionChange olayını kullanın.
JavaScript
  let permission = OneSignal.Notifications.permission;

addEventListener() bildirimler

Bir bildirim olayına olay işleyicilerinizi ekleyerek bildirim yaşam döngüsüne bağlanabilirsiniz. addEventListener çağrısı, bildirim olayları için rastgele sayıda olay işleyicisi eklemenizi sağlar. Olayları dinlemeyi durdurmak için ilişkili removeEventListener() yöntemini çağırın.
JavaScript
  function eventListener(event) {
    console.log(`${event}`);
  }

  OneSignal.Notifications.addEventListener("event", eventListener);

  OneSignal.Notifications.removeEventListener("event", eventListener);

permissionChange

Bu olay, kullanıcı İzin Ver veya Engelle’ye tıkladığında veya tarayıcının yerel izin isteğini kapattığında gerçekleşir.
JavaScript
  function permissionChangeListener(permission) {
    if (permission) {
      console.log(`izin kabul edildi!`);
    }
  }

  OneSignal.Notifications.addEventListener("permissionChange", permissionChangeListener);

permissionPromptDisplay

Bu olay, tarayıcının yerel izin isteği gösterildiğinde gerçekleşir.
JavaScript
  function promptListener() {
    console.log(`izin istemi görüntülendi olayı: ${event}`);
  }

  OneSignal.Notifications.addEventListener("permissionPromptDisplay", promptListener);

click

Bu olay, bildirimin gövdesi/başlığı veya eylem düğmeleri tıklandığında tetiklenir.
JavaScript
  function clickEventListener(event) {
    console.log(`tıklama olayı: ${event}`);
  }

  OneSignal.Notifications.addEventListener("click", clickEventListener);

foregroundWillDisplay

Bu olay, bir bildirim görüntülenmeden önce gerçekleşir. Bu olay sayfanızda tetiklenir. Sitenizde birden fazla tarayıcı sekmesi açıksa, bu olay OneSignal’in aktif olduğu tüm sayfalarda tetiklenir.
JavaScript
  function foregroundWillDisplayListener(event) {
    console.log(`bildirim görüntülenecek: ${notification}`);
  }

  OneSignal.Notifications.addEventListener("foregroundWillDisplay", foregroundWillDisplayListener);

dismiss

Bu olay şu durumlarda gerçekleşir:
  • Bir kullanıcı bildirim gövdesine veya eylem düğmelerine tıklamadan bildirimi kasıtlı olarak kapatır
  • Android’de Chrome’da, bir kullanıcı tüm web push bildirimlerini kapatır (bu olay gösterdiğimiz her web push bildirimi için tetiklenir)
  • Bir bildirim kendi kendine sona erer ve kaybolur
Bu olay, bir kullanıcı bildirim gövdesine veya eylem düğmelerinden birine tıklarsa gerçekleşmez. Bu bir bildirim click olayı olarak kabul edilir.
JavaScript
  function notificationDismissedListener(event) {
    console.log(`kapatma olayı: ${event}`);
  }

  OneSignal.Notifications.addEventListener("dismiss", notificationDismissedListener);

setDefaultUrl()

Bildirimler için varsayılan URL’yi ayarlar. Varsayılan bir URL ayarlamadıysanız, bildiriminiz varsayılan olarak sitenizin kök dizinine açılır.
JavaScript
  OneSignal.Notifications.setDefaultUrl("https://onesignal.com");
Bildirimler için varsayılan URL’yi ayarlamak için, bildirime tıklandığında başlatılmasını istediğiniz geçerli bir URL sağlayın. Bu varsayılan URL, bir bildirim oluştururken başka bir URL belirtilmemişse kullanılır. Bir bildirim oluştururken bir URL belirtirseniz, varsayılan URL geçersiz kılınır. Safari durumunda, varsayılan bildirim ikonu URL’si Safari ayarlarınızda belirttiğiniz Site URL’sine ayarlanır, çünkü bu işlev mevcut değildir.

setDefaultTitle()

Bildirimlerde görüntülenecek varsayılan başlığı ayarlar.
JavaScript
  OneSignal.Notifications.setDefaultTitle("Powered by OneSignal!");
Bir başlıkla bir bildirim oluşturulursa, belirtilen başlık her zaman bu varsayılan başlığı geçersiz kılar. Bir bildirimin başlığı varsayılan olarak kullanıcının en son ziyaret ettiği sayfanın başlığıdır. Sayfa başlıklarınız sayfalar arasında değişiyorsa, bu tutarsızlık istenmeyen olabilir. Bir bildirim başlığı belirtilmediği sürece, bildirimler genelinde sayfa başlıklarını standartlaştırmak için bunu çağırın.

Sonuçlar

sendOutcome()

OneSignal kontrol panelinde görüntülenebilecek bir sonucu tetikler. Bir sonuç adı (string, gerekli) ve bir değer (number, isteğe bağlı) kabul eder. sendOutcome yöntemi aynı sonuç adıyla her çağrıldığında, sonuç sayısı artacak ve sonuç değeri geçilen miktarla artacaktır (dahil edilmişse). Daha fazla ayrıntı için Özel Sonuçlar’a bakın.
JavaScript
  OneSignal.Session.sendOutcome('outcome name', 19.84);

sendUniqueOutcome()

OneSignal kontrol panelinde görüntülenebilecek bir sonucu tetikler. Yalnızca sonuç adını (string, gerekli) kabul eder. sendUniqueOutcome, o sonucun sayısını kullanıcı başına yalnızca bir kez artırır. Daha fazla ayrıntı için Özel Sonuçlar’a bakın.
JavaScript
  OneSignal.Session.sendUniqueOutcome('outcome name');