OneSignalSDKWorker.js), web push bildirimleri için gerekli olan ve sunucunuzda barındırılan bir JavaScript dosyasıdır. Kullanıcı sayfanızda olmasa bile sitenizin bildirimleri alıp görüntülemesini sağlar.

OneSignal service worker'ın push bildirimlerini işleme şekli
OneSignalSDKWorker.js dosyasını sdk_files dizininde barındırır ve yolu sizin için yapılandırır. Dosyayı site kök dizinine yüklemeyin veya kontrol panelinde ya da kodda özel bir yol ayarlamayın. WordPress kurulumu’na bakın. Shopify de worker’ı sizin için dağıtır. Shopify kurulumu’na bakın.Service worker kurulumu
OneSignal push bildirimleri için özel birOneSignalSDKWorker.js dosyası oluşturun. Sitenizde zaten bir service worker varsa ve tek bir dosya kullanmak istiyorsanız, bunun yerine Birden fazla service worker birleştirme bölümüne bakın.
OneSignalSDKWorker.js'yi indirin veya oluşturun
OneSignalSDKWorker.js adında bir dosya oluşturun:onesignalsdkworker.js, ossw.js). Bunu yaparsanız, bu kılavuzdaki OneSignalSDKWorker.js ifadesini dosya adınızla değiştirin.Web sunucunuza yükleyin
OneSignalSDKWorker.js dosyasını sunucunuza yerleştirerek HTTPS üzerinden kamuya açık şekilde erişilebilir hale getirin. Dosyaya erişim için kimlik doğrulama veya giriş gerektirmemelidir.Önerilen: Dosyayı, hiçbir zaman sayfa sunmayan özel bir alt dizinde barındırın, örneğin /push/onesignal/. Bu, sitenizdeki diğer service worker’larla (örn. bir PWA veya AMP service worker’ı) çakışmayı önler ve URL yolunu kararlı tutar.- Örnek:
https://yoursite.com/push/onesignal/OneSignalSDKWorker.js
https://yoursite.com/OneSignalSDKWorker.js) arar. Dosyayı kök dizine yükleyebilirsiniz, ancak kök kapsamına ihtiyaç duyan diğer service worker’larla çakışabilir. Bir PWA kullanıyorsanız, OneSignalSDKWorker.js dosyasını bir alt dizine yerleştirin.Dosyanın erişilebilir olduğunu doğrulayın
https://yoursite.com/push/onesignal/OneSignalSDKWorker.js). İlk adımdaki importScripts satırını görmelisiniz:
Tarayıcıda beklenen service worker dosyası içeriği
SDK'ya dosyayı nerede bulacağını söyleyin
OneSignalSDKWorker.js dosyasını site kök dizininizde (https://yoursite.com/OneSignalSDKWorker.js) arar. Bunu nasıl söyleyeceğiniz entegrasyon türünüze bağlıdır.Dosyayı site kök dizininize yerleştirdiyseniz, ek yapılandırma gerekmez. Bir sonraki adıma geçin.Dosyayı bir alt dizine yerleştirdiyseniz, yolu ayarlamanız gerekir. Typical Site bunu kontrol panelinde ayarlar. Özel Kod bunu OneSignal.init() içinde ayarlar. İkisini karıştırmak çalışmaz: kontrol paneli yol alanları Özel Kod için geçerli değildir ve serviceWorkerPath Typical Site için geçerli değildir.Typical Site
Yolu OneSignal kontrol panelinde ayarlayın. KoddaserviceWorkerPath geçirmeyin.- Settings > Push & In-App > Web’e gidin.
- Advanced Push Settings altında Customize service worker paths and filenames seçeneğini etkinleştirin.

Kontrol panelinde service worker yolu yapılandırması
Özel Kod
OneSignal.init() çağrınıza serviceWorkerPath ve serviceWorkerParam parametrelerini geçirin. Özel Kod, kontrol panelindeki Customize service worker paths and filenames alanlarını kullanmaz.https://yoursite.com/OneSignalSDKWorker.js adresini getirir ve kayıt başarısız olur.Bu seçenekleri tam init kod parçanıza eklemek için Özel Kod kurulumu’na bakın.Service worker gereksinimlerini inceleyin
OneSignalSDKWorker.js dosyası aşağıdaki gereksinimlerin tamamını karşılamalıdır.Web SDK kurulumu
Birden fazla service worker birleştirme
Sitenizdeki her service worker dosyası bir kapsama — hangi sayfaları kontrol ettiğini belirleyen bir URL yoluna — kaydedilir. Belirli bir kapsamda yalnızca bir service worker etkin olabilir. Halihazırda bir service worker’ınız varsa (örneğin, bir PWA veya önbellek worker’ı) ve OneSignal’ın aynı dosyayı paylaşmasını istiyorsanız, bunları birleştirebilirsiniz. Birleştirmek için, OneSignalimportScripts satırını mevcut service worker dosyanıza ekleyin:
Geçiş kılavuzu
Bu bölüm, service worker dosya yolunu, dosya adını veya kapsamı değiştirmesi gereken mevcut OneSignal müşterileri içindir. Mevcut yapılandırmanızı değiştirmek için özel bir nedeniniz olmadıkça bu adımları uygulamayın.Service worker'ınızı ne zaman ve nasıl geçirirsiniz
Service worker'ınızı ne zaman ve nasıl geçirirsiniz
- Kök kapsamlı OneSignal service worker, bir Progressive Web App (PWA) ile çakışıyor
- Service worker, AMP veya başka bir önbellek service worker’ı ile çakışıyor
- Güvenlik politikaları kök kapsamda üçüncü taraf service worker koduna izin vermiyor
OneSignalSDKWorker.js dosyasının yalnızca şunu içerdiğini doğrulayın:serviceWorkerParam’ı (Özel Kod) kullanarak kapsamı güncelleyin. Başka değişiklik gerekmez.Dosyanız OneSignal + başka kod içeriyorsaService worker’ınız ek importScripts çağrıları içerebilir (örn. Birden fazla service worker birleştirme kılavuzunu takip etmiş olmanız durumunda). Mevcut kurulumunuz hâlâ çalışıyorsa, olduğu gibi bırakın — birleştirilmiş bir service worker’ı ayırmak iki aşamalı bir dağıtım gerektirir.Ayırmanız gerekiyorsa:Mevcut dosyaya bir saklama yorumu ekleyin
importScripts satırının üzerine ekleyin:Yeni bir özel OneSignal service worker oluşturun
/push/onesignal/) yalnızca şunu içeren OneSignalSDKWorker.js dosyasını oluşturun:OneSignal yapılandırmasını güncelleyin
OneSignal.init()’i (Özel Kod) kullanarak yeni yolu ve kapsamı ayarlayın.Abonelerin geçişini bekleyin
Temizlik
importScripts satırını kaldırın.Eski dosyaya bir saklama yorumu ekleyin
Yeni konumda yeni dosyayı oluşturun
OneSignalSDKWorker.js’yi (veya seçtiğiniz dosya adını) yeni dizine şunu içerecek şekilde yerleştirin:OneSignal yapılandırmasını güncelleyin
Abonelerin geçişini bekleyin
Temizlik
SSS
Bu kılavuz WordPress için geçerli mi?
Hayır. WordPress eklentisi,OneSignalSDKWorker.js dosyasını sdk_files dizininde barındırır ve kaydeder. Site kök dizinine bir worker yüklemeyin veya kodda serviceWorkerPath ayarlamayın. WordPress kurulumu’na bakın.
Typical Site ve Özel Kod için service worker yolunu nasıl ayarlarım?
Web SDK, özel bir yol ayarlamadığınız süreceOneSignalSDKWorker.js dosyasını site kök dizininizde arar. Typical Site bu yolu kontrol panelinde Customize service worker paths and filenames altında ayarlar. Özel Kod bunu OneSignal.init() içindeki serviceWorkerPath ve serviceWorkerParam ile kodda ayarlar. Kontrol paneli yol alanları Özel Kod için geçerli değildir. SDK’ya dosyayı nerede bulacağını söyleyin’e bakın.
Service worker’ım neden 404 döndürüyor?
Dosya, SDK’nın beklediği URL’de değil. Erişilebilir olduğunu doğrulamak için tarayıcınızda tam dosya URL’sine gidin. Dosyayı bir alt dizine yerleştirdiyseniz, yapılandırılan yol, dizin ve dosya adı dahil gerçek dosya konumuyla eşleşmelidir. Typical Site: kontrol paneli yol ayarlarını kontrol edin. Özel Kod:OneSignal.init() içindeki serviceWorkerPath’i kontrol edin.
Service worker dosyasını taşıdıktan sonra bildirimler neden gösterilmiyor?
Mevcut aboneler hâlâ eski service worker URL’sini referans alıyor. Tarayıcı, her push geldiğinde kayıtlı URL’yi getirir (en fazla 24 saat önbelleğe alınır). Eski URL 404 döndürürse, o aboneler bildirim almaz. Aboneler sitenizi tekrar ziyaret ederek doğal olarak geçiş yaparken, eski dosyayı en az bir yıl boyunca barındırmaya devam edin. Geçiş kılavuzu ve Web push bildirimleri gösterilmiyor kılavuzuna bakın.Service worker’ı bir CDN veya alt alan adında barındırabilir miyim?
Hayır. Tarayıcılar, service worker’ların onları kaydeden sayfayla aynı kaynaktan sunulmasını gerektirir. Dosya birincil alan adınızda olmalıdır — CDN, alt alan adı veya farklı bir alan adında olamaz.PWA’ım neden OneSignal service worker ile çakışıyor?
Her ikisi de muhtemelen kök kapsamda (/) kayıtlıdır ve belirli bir kapsamda yalnızca bir service worker etkin olabilir. PWA’nızın kök kapsamın kontrolünü koruyabilmesi için OneSignal service worker’ı bir alt dizin kapsamına (örn. /push/onesignal/) taşıyın ya da Birden fazla service worker birleştirme bölümünde açıklandığı gibi birleştirin.
OneSignalSDKWorker.js dosyasını yeniden adlandırabilir miyim?
Evet. Sunucunuz belirli bir adlandırma kuralı gerektiriyorsa (örn. tümü küçük harf), dosyayıonesignalsdkworker.js gibi bir adla yeniden adlandırın. Typical Site: kontrol panelindeki Service worker filename alanını güncelleyin. Özel Kod: OneSignal.init() çağrınızdaki serviceWorkerPath’i güncelleyin. SDK’ya dosyayı nerede bulacağını söyleyin’e bakın.
Sunucum service worker dosyası için hangi içerik türünü döndürmelidir?
SunucuContent-Type: application/javascript; charset=utf-8 döndürmelidir. Bazı sunucu veya CDN yapılandırmaları yanlış bir MIME türü döndürür; bu, tarayıcının service worker kaydını reddetmesine neden olur.