Jifunze kutengeneza app | hatua ya 2| Service Worker (sw.js) β Muhimu Ili APP Ifanye Kazi Offline
π Service Worker (sw.js)
Service Worker ni program ndogo inayokimbia nyuma ya website (background) bila kuhitaji kufungua page.
Ndiyo inafanya app yako iweze:
Kufanya kazi bila intaneti (offline mode)
Kuhifadhi (cache) pages zinazotembelewa mara nyingi
Kuongeza speed ya website
Kuruhusu installation ya app
Kwa kifupi:
Bila sw.js, Faulink.com haiwezi kuwa app inayoweka (installable).
π§ SW.js Hufanya Kazi Gani?
β Inahifadhi (cache) files kama:
CSS
JavaScript
Images
HTML pages
β Inawezesha user kufungua app hata kama hana bundle
β Inaongeza kasi ya website mara 2β4
β Ni sehemu ya lazima ya PWA App
π Mfano Rahisi wa Service Worker (sw.js) kwa Faulink.com
Huu ni service worker wa standard, salama na unaofanya kazi papo hapo:
const cacheName = "faulink-cache-v1";
const filesToCache = [
"/",
"/index.php",
"/manifest.json",
"/icons/faulink-192.png",
"/icons/faulink-512.png",
"/css/style.css",
"/js/main.js"
];
// Install Service Worker
self.addEventListener("install", (event) => {
event.waitUntil(
caches.open(cacheName).then((cache) => {
return cache.addAll(filesToCache);
})
);
});
// Fetch Cached Files
self.addEventListener("fetch", (event) => {
event.respondWith(
caches.match(event.request).then((response) => {
return response || fetch(event.request);
})
);
});
π Maelezo ya Kila Sehemu
πΈ cacheName
Jina la cache β uki-update app, badilisha version (mfano: v2)
πΈ filesToCache
Orodha ya files za kutunzwa bila intaneti.
Unaweza kuongeza kama unataka:
blog_viewer.php
matokeo_index.php
mauzologin.php
CSS/JS zako zote
πΈ install event
Hapa ndio browser inahifadhi files kwenye cache.
πΈ fetch event
Hii inafanya page ifunguke hata kama hakuna internet.
π Mahali pa Kuweka sw.js
Weka sw.js hapa:
public_html/sw.js
Sio ndani ya folder β lazima iwe kwenye root (sehemu moja na index.php)
π JINSI YA KUSAJILI SERVICE WORKER KWENYE WEBSITE
Ongeza code hii mwisho wa <body> au kwenye main.js:
<script>
if ("serviceWorker" in navigator) {
navigator.serviceWorker.register("/sw.js")
.then(() => console.log("Service Worker Registered"))
.catch(err => console.log("SW Error:", err));
}
</script>
Baada ya kufanya hivi:
β App ita-install bila error
β Chrome itatambua PWA
β Install button itaonekana
β MAFUNZO YA ZIADA
Hakikisha:
Website ipo kwenye HTTPS
manifest.json ipo sawa
icons zipo sahihi
sw.js iko root folder
π Tayari β Faulink.com sasa iko 50% kubadilishwa kuwa App!