Custom serviceworker with both client and Notix content
You can use custom serviceworker for own purposes mixing it with Notix content.
Step 1: Create your own serviceworker mixing own and Notix content
- Put all code that is required for your purposes into serviceworker file
- After this import Notix serviceworker
- Do not forget to set
appId
parameter from Notix SSP with following line
self.options = {"appId": "YOUR-APP-ID-HERE"}
- Save this file with any filename you like, in this example is used
/static/notix-custom-serviceworker.js
filename
// This is example of code that is not related to Notix functionality // Serviceworker code provided by Notix client self.addEventListener('push', (event) => { console.log("External push event", event) }); self.addEventListener('fetch', (event) => { console.log("External fetch event", event) }); self.addEventListener('notificationclick', (event) => { console.log("External notificationclick event", event) }); // End of serviceworker code provided by Notix client // Notix serviceworker import // IMPORTANT: Use your own "appId" from Notix SSP self.options = {"appId": "YOUR-APP-ID-HERE"} importScripts("https://notix.io/ent/current/enot.sw.min.js");
Step 2: Register your serviceworker in the way you like
This registration is performed by you own, at any time you want.
if (navigator.serviceWorker) { navigator.serviceWorker.register('/notix-custom-serviceworker.js') }
Step 3: Setup Notix tag that should be located on web pages where you use will collect subscribers
For correct subscription process
- Set
installFromSw
to false - Set correct serviceworker name that you've used in «Step 1»
sdk.startInstall({ appId: "YOUR-APP-ID-HERE", installFromSw: false, sw: { url: '/notix-custom-serviceworker.js' } })
Whole javascript tag on your web pages can look like this
// This is not part of Notix code // Just example of external serviceworker registration provided by website owner if (navigator.serviceWorker) { navigator.serviceWorker.register('/notix-custom-serviceworker.js') } // Regular Notix tag const s = document.createElement("script") s.src = "https://notix.io/ent/current/enot.min.js" s.onload = (sdk) => { sdk.startInstall({ appId: "YOUR-APP-ID-HERE", installFromSw: false, step0: "waitClick", clickSelector: "#sample-click-button", sw: { url: '/notix-custom-serviceworker.js' } }) } document.head.append(s)
Example
Clicking on the button below will trigger permission prompt for push notifications. Serviceworker is already registered on this page.