Genel bakış
Bu kılavuz, Web Push Bildirimleri için OneSignal Service Worker’ın nasıl yapılandırılacağını kapsar.WordPress eklentimizi kullanıyorsanız, OneSignal Service Worker dosyası otomatik olarak eklenir ve bu dosyaları sitenize manuel olarak eklememeli siniz. Daha fazla bilgi için WordPress kurulum sayfasına dönün.
Service worker’lar nedir?
Service Worker, ana sayfadan ayrı bir thread’de çalışan bir arka plan komut dosyasıdır. Push bildirimleri, çevrimdışı önbelleğe alma ve arka plan senkronizasyonu gibi özellikleri etkinleştirir. Siteniz onu kaydettiğinde yüklenir ve her zaman çalışmasa da, kullanıcı uzaklaştıktan sonra bile olayları (push dahil) işlemek için uyandırılabilir.
OneSignal’in service worker’ını nasıl entegre edilir
Web SDK Kurulum kılavuzumuzu takip ederken,OneSignalSDKWorker.js service worker dosyası size sağlanacaktır.
.js dosyasını indirin
OneSignalSDKWorker.js dosyasını OneSignal dashboard’undan indirin veya OneSignal Service Worker Dosyasını buradan indirin.
.js dosyasını sunucunuza yükleyin
SDK’mız varsayılan olarak sitenizin kökündeOneSignalSDKWorker.js dosyasını arar, örneğin: https://yoursite.com/OneSignalSDKWorker.js
Bu dosyayı sitenizin kök dizinine yükleyebilir ve sonraki adımlar için Web push kurulum kılavuzuna dönebilirsiniz. Ancak, bu OneSignalSDKWorker.js dosyasını, kullanıcıları asla bağlantı vermeyeceğiniz bir alt dizin yoluna yerleştirmeniz önerilir, örneğin: https://yoursite.com/push/onesignal/OneSignalSDKWorker.js.
Bu dosyayı köke yerleştirebilirsiniz, ancak şimdi sahip olduğunuz veya gelecekte ekleyebileceğiniz diğer Service Worker’larla çakışabilir. Ayrıca, dosya asla değişmeyecek kalıcı bir konum yoluna konulmalıdır. Bir Service Worker tarayıcıya kaydedildiğinde, değiştirmek zordur.
Service Worker yapılandırması
OneSignal service worker dosyasıOneSignalSDKWorker.js şu gereksinimleri karşılamalıdır:
- Dosya herkese açık olarak erişilebilir olmalıdır, yani tarayıcıda dosyaya gidebilmeli ve kodu görebilmelisiniz.
- Dosya
application/javascript; charset=utf-8content-typeile sunulmalıdır. - Dosya aynı site origin’ine (site domain’iniz) işaret etmelidir. Farklı bir origin’deki bir Service Worker’a işaret etmeye izin verilmez. CDN veya subdomain yok.
Service worker’ın doğru şekilde kurulduğunu onaylayın
Tarayıcınızda service worker’ı ziyaret edin. Service worker için kodu görmelisiniz:importScripts("https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.sw.js");

OneSignalSDKWorker.js dosyasını sitenizin köküne yüklediyseniz (https://yoursite.com/OneSignalSDKWorker.js adresinde erişilebilir) başka bir işlem gerekmez.
Ancak, https://yoursite.com/push/onesignal/OneSignalSDKWorker.js gibi bir alt dizine koyduysanız, kayıt kapsamını aşağıdaki gibi ayarlamanız gerekecektir:
- Tipik site kurulumu
- Özel Kod Kurulumu
OneSignal dashboard’unda, Uygulamanızın Settings > Push & In-App > Web Settings bölümüne gidinAdvanced Push Settings altında, Customize service workers paths and filenames anahtarını açın ve verilerinizi girin.

- Path to service worker files, OneSignal Service Worker dosyasının nerede mevcut olacağına ilişkin dizindir. Service Worker şu adreste mevcutsa:
https://yoursite.com/push/onesignal/OneSignalSDKWorker.jso zaman yol:/push/onesignal/ - Main and Updater service worker filenames, Service worker dosyasının adıdır.
OneSignalSDKWorker.jsolmalıdır ancak değiştirdiyseniz,.jsdosya uzantısını kullandığınızdan emin olun. Örneğin, sunucunuz dosyaları küçük harf yapmaya zorluyorsa, dosya adınıonesignalsdkworker.jsolarak ayarlayabilirsiniz - Service worker registration scope, bu dosyanın üzerinde çalışabileceği sayfalardır. Bu, kullanıcıları asla bağlantı vermeyeceğiniz ve şimdi veya gelecekte hiçbir zaman sayfa barındırmayacağınız bir yol olmalıdır. Yaygın bir yol örneği:
/push/onesignal/ve kapsam aynı yol veya daha derin olabilir, örneğin:/push/onesignal/js/
Service worker kurulumu tamamlandı!Sonraki adımlar için Web SDK Kurulum kılavuzuna dönün.
OneSignal Service Worker taşıma kılavuzu
Bu bölüm yalnızca OneSignal’i zaten kullanan, büyük miktarda web push abonesi olan ve OneSignal Service Worker ayarlarını değiştirmek isteyen müşteriler içindir. Bunu yapmak için özel bir nedeniniz yoksa önerilmez.OneSignalSDKWorker.js dosyası için taşıma adımları
OneSignalSDKWorker.js dosyası için taşıma adımları
OneSignal’in Service Worker’ı, siteniz için aşağıdaki sorunları yaratabilecek bir kök kapsama varsayılandır:
- PWA ile çakışma
- AMP kurulumu ile çakışma
- Önbelleğe alma Service Worker’ınızla veya kök kapsam gerektiren diğer herhangi bir Service Worker özelliğiyle çakışma
- Sitenizin, kullanıcılarınızın ziyaret edeceği bir sayfayı kontrol eden kapsamda üçüncü taraf Service Worker kodunun çalışmasına izin vermeyen güvenlik gereksinimleri vardır.
OneSignal Service Worker Kapsamı Seçme
Hiçbir zaman bir kullanıcıyı bağlamayacağınız, ancak ne yaptığını hala net olan bir Service Worker kapsam yolu seçmeniz önerilir. Örnek:/push/onesignal/. Bu şekilde PWA’nız, AMP’niz veya diğer herhangi bir önbelleğe alma ServiceWorker’ı, bir kullanıcının doğru çalışması için görüntülediği sayfayı kontrol edebilir.Birden fazla service worker’ı aynı konum yoluna koymak sorun değil, ancak benzersiz kapsam yolu olmalıdır.- Seçenek 1: Kapsamı değiştir
- Seçenek 2: Dosya adını veya konumu değiştir
OneSignal Service Worker Kapsamını güvenli bir şekilde değiştir
Mümkünse yalnızca kapsamı değiştirmeniz önerilir, Service Worker’ın dosya adını veya konum yolunu değiştirmenin ek hususları vardır. Aboneleri kaybetmemeniz veya bildirim görüntüleme sorunlarıyla karşılaşmamanız için hem hangi senaryonun sizin için geçerli olduğunun ayrıntılarına hem de her adıma yakından dikkat edin
Kurulum Tipi 1. Varsayılan OneSignal Kurulumu - Kök kapsam ”/” VE varsayılan OneSignalSDKWorker.js İçeriği
OneSignalSDKWorker.js dosyanızın içeriğinin OneSignal Service Worker Dosyasını buradan indirin’de bulunanla aynı olduğunu onaylayın. (İçinde ihtiyacınız olabilecek diğer OneSignal olmayan kodlar olmadan)Bu durumda, başka bir Service Worker’ı kök kapsama yerleştirmek için yer açmak üzere OneSignal kapsamını seçtiğiniz herhangi bir şeye değiştirebilirsiniz. Yukarıdaki Service Worker Entegrasyonunuzu Özelleştir’e bakın.Kurulum Tipi 2. Nadir - Kök kapsam ”/” VE OneSignalSDKWorker.js (veya yapılandırdığınız dosya adı) OneSignal + diğer kod veya importScripts içerir
Bu bölüm, mevcut Service Worker’ınızda OneSignal VE aşağıdaki gibi başka bir özel kod veyaimportScript varsa geçerlidir.Mevcut service worker kodunuzu tutun.
Mevcut ServiceWorker dosyanıza bu satırın üstüne
importScripts("https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.sw.js");
uzun bir süre (bir yıl veya daha fazla önerilir, siteyi asla yeniden ziyaret etmeyen kullanıcılara ne kadar süre push göndermeye devam etmek istediğinize bağlıdır) tutmak için bir kod yorumu ekleyin. Örnek: // YYYY-AA-GG'ye kadar TUTUN: Yeni OneSignal özel ServiceWorker'a taşımak için yeniden ziyaret etmemiş kullanıcılar için push'ların doğru çalışması için gerekli.Yeni bir service worker dosyası oluşturun
Aşağıdaki tek kod satırıyla
/push/onesignal/ gibi farklı bir dizin altında yeni bir OneSignalSDKWorker.js oluşturun
importScripts("https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.sw.js");Kapsamınızı, dosya adınızı ve yolunuzu değiştirmek için "Service Worker Entegrasyonunuzu Özelleştirme" kılavuzunu izleyin.
Bu noktada yeni ve geri dönen kullanıcılar otomatik olarak yeni OneSignal ServiceWorker'a abone olacaktır.
Seçtiğiniz zaman çizelgesinden daha eski kullanıcıları silmek için OneSignal - "Delete Users" kılavuzunu izleyin.