Skip to main content

progressive-web-apps

Progressive Web Apps with service workers, manifest, and offline capabilities

来源信息

仓库
ffsshhttiikk/opencode-agents-skills
最近来源活动
2026年2月28日 22:53
检测到的 SKILL.md 语言
英语
星标
3
Forks
2

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
progressive-web-apps
description
Progressive Web Apps with service workers, manifest, and offline capabilities
license
MIT
compatibility
opencode
metadata
{"audience":"developers","category":"web-development"}
## What I do - Create PWAs with manifest.json - Implement service workers for offline support - Handle push notifications - Use cache strategies - Add to home screen capabilities - Implement background sync ## When to use me When building installable web apps with offline capabilities. ## Manifest ```json { "name": "My PWA", "short_name": "MyApp", "start_url": "/", "display": "standalone", "background_color": "#ffffff", "theme_color": "#007bff", "icons": [ { "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" }, { "src": "/icon-512.png", "sizes": "512x512", "type": "image/png" } ] } ``` ## Service Worker ```javascript // sw.js self.addEventListener('install', event => { event.waitUntil( caches.open('v1').then(cache => { return cache.addAll(['/', '/index.html', '/styles.css']); }) ); }); self.addEventListener('fetch', event => { event.respondWith( caches.match(event.request).then(response => { return response || fetch(event.request); }) ); }); ``` ## Cache Strategies ```javascript // Cache first async function cacheFirst(request) { const cached = await caches.match(request); return cached || fetch(request); } // Network first async function networkFirst(request) { try { return await fetch(request); } catch { return caches.match(request); } } // Stale-while-revalidate async function staleWhileRevalidate(request) { const cached = await caches.match(request); const fetchPromise = fetch(request).then(response => { caches.open('v1').then(cache => cache.put(request, response)); return response; }); return cached || fetchPromise; } ```
在 GitHub 查看