Genel bakış
Bu kılavuz, Web Push Bildirimleri için OneSignal Service Worker’ın nasıl yapılandırılacağını kapsar.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.
Service worker'lar nasıl çalışır
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");

Service worker kodu örneği
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

Tipik site kurulumu için service worker yapılandırması
- 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/
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ı
- 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
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.
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
/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.
1. adımda belirtildiği gibi süreyi (yaklaşık bir yıl) bekleyin.
Seçtiğiniz zaman çizelgesinden daha eski kullanıcıları silmek için OneSignal - "Delete Users" kılavuzunu izleyin.
Orijinal service worker'dan yorumu kaldırın
importScripts("https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.sw.js"); satırını kaldırın.