एक्सटेंशन के सर्विस वर्कर, वेब के सर्विस वर्कर से अलग तरीके से इंस्टॉल और अपडेट किए जाते हैं. इस पेज पर, इन दोनों के बीच के अंतर के बारे में बताया गया है.
सर्विस वर्कर रजिस्टर करना
एक्सटेंशन सेवा वर्कर को रजिस्टर करने के लिए, manifest.json
फ़ाइल के "background"
फ़ील्ड में इसकी जानकारी दें. "service_worker"
कुंजी का इस्तेमाल करें, जो किसी एक JavaScript फ़ाइल के बारे में बताती है. वेब पेजों या वेब ऐप्लिकेशन में, सेवा वर्कर को रजिस्टर करने के लिए, पहले navigator
में serviceWorker
के लिए सुविधा का पता लगाया जाता है. इसके बाद, सुविधा का पता लगाने के दौरान register()
को कॉल किया जाता है. यह सुविधा एक्सटेंशन के लिए काम नहीं करती.
{
"name": "Awesome Test Extension",
...
"background": {
"service_worker": "service-worker.js"
},
...
}
स्क्रिप्ट इंपोर्ट करना
किसी सेवा वर्कर में स्क्रिप्ट इंपोर्ट करने के दो तरीके हैं: import
स्टेटमेंट और importScripts()
तरीका. ध्यान दें कि import()
, जिसे अक्सर डाइनैमिक इंपोर्ट कहा जाता है, काम नहीं करता.
import
स्टेटमेंट का इस्तेमाल करने के लिए, अपने मेनिफ़ेस्ट में "type"
फ़ील्ड जोड़ें और "module"
की जानकारी दें. उदाहरण के लिए:
"background": {
"service_worker": "service-worker.js",
"type": "module"
}
इसके बाद, import
का इस्तेमाल सामान्य तौर पर करें. ध्यान दें कि इंपोर्ट किए गए एसेर्ट के लिए, एश्योरेंस की सुविधा काम नहीं करती.
import { tldLocales } from './locales.js';
importScripts()
का इस्तेमाल वैसे ही करें जैसे वेब सेवा वर्कर्स में किया जाता है.
importScripts('locales.js');
अपडेट करें
सेवा वर्कर को अपडेट करने के लिए, Chrome Web Store पर अपने एक्सटेंशन का नया वर्शन पब्लिश करें. सर्वर से एक्सटेंशन लोड करके, इस समस्या से छुटकारा नहीं पाया जा सकता. सुरक्षा वजहों से, मेनिफ़ेस्ट V3 में रिमोट तरीके से होस्ट किए गए कोड का इस्तेमाल नहीं किया जा सकता. आपका सेवा वर्कर, एक्सटेंशन पैकेज का हिस्सा होना चाहिए.