# Web Push Notification System (ระบบแจ้งเตือนผ่านเว็บ) ระบบแจ้งเตือนผ่านเว็บแบบง่าย รองรับการแจ้งเตือนแบบ Web Push โดยไม่ต้องใช้ server หรือ key ใดๆ ## 🔗 ลิงก์ - [Demo](https://goragodwiriya.github.io/webpush/) - [Source Code](https://github.com/goragodwiriya/webpush) ## ✨ คุณสมบัติ - 🔔 แสดงการแจ้งเตือนแบบ Web Push - 🎨 รองรับ 4 ประเภทการแจ้งเตือน: - ✅ Success (สำเร็จ) - ❌ Error (ข้อผิดพลาด) - ⚠️ Warning (คำเตือน) - ℹ️ Info (ข้อมูล) - 🖼️ มีไอคอนในตัว (SVG) - 🔗 สามารถกำหนด URL เพื่อเปิดเมื่อคลิก - 🔲 มีปุ่มกดเพื่อเปิดดูหรือปิด - 📳 แสดงการสั่น - 👆 สามารถกำหนดให้ต้องมีการตอบสนองจากผู้ใช้ ## 📋 ข้อกำหนดเบื้องต้น - เว็บเบราว์เซอร์ที่รองรับ Service Worker - Web Server (เช่น Live Server ใน VS Code) ## 🛠️ การติดตั้ง 1. ดาวน์โหลดไฟล์ทั้งหมดในโปรเจ็ค 2. วางไฟล์ทั้งหมดไว้ในโฟลเดอร์ของเว็บไซต์ของคุณ 3. ตรวจสอบให้แน่ใจว่าไฟล์อยู่ในตำแหน่งที่ถูกต้อง: ``` your-website/ ├── web-push-notification.js ├── service-worker.js └── index.html (หรือหน้าเว็บของคุณ) ``` ## 📖 วิธีการใช้งาน 1. เพิ่ม script ในหน้า HTML ของคุณ: ```html ``` 2. เริ่มต้นระบบแจ้งเตือน: ```javascript WebPushNotification.init(); ``` 3. ส่งการแจ้งเตือน: ```javascript // แจ้งเตือนสำเร็จ WebPushNotification.success('การทำงานเสร็จสิ้น!', { url: '/success-page' }); // แจ้งเตือนข้อผิดพลาด WebPushNotification.error('เกิดข้อผิดพลาด', { requireInteraction: true }); // แจ้งเตือนคำเตือน WebPushNotification.warning('กรุณาตรวจสอบข้อมูล'); // แจ้งเตือนข้อมูล WebPushNotification.info('คุณมีข้อความใหม่', { url: '/messages' }); ``` ## ⚙️ ตัวเลือกการแจ้งเตือน ```javascript { body: '', // ข้อความเนื้อหา icon: '', // URL ของไอคอน badge: '', // URL ของแบดจ์ vibrate: [], // รูปแบบการสั่น tag: '', // แท็กสำหรับจัดกลุ่ม data: { url: '/' }, // ข้อมูลเพิ่มเติม requireInteraction: false, // ต้องการการตอบสนองจากผู้ใช้ actions: [ // ปุ่มกดในการแจ้งเตือน { action: 'open', title: 'เปิดดู' }, { action: 'close', title: 'ปิด' } ] } ``` ## ⚠️ ข้อจำกัด - ต้องเปิดผ่าน web server (ไม่สามารถเปิดไฟล์ HTML โดยตรงได้) - ผู้ใช้ต้องอนุญาตการแจ้งเตือน - เบราว์เซอร์ต้องรองรับ Service Worker ## 🤝 การมีส่วนร่วม หากคุณพบปัญหาหรือต้องการเพิ่มคุณสมบัติใหม่ สามารถสร้าง Issue หรือส่ง Pull Request ได้ที่ [GitHub Repository](https://github.com/goragodwiriya/webpush) ## 📝 ลิขสิทธิ์ [MIT License](LICENSE) ## 👨‍💻 ผู้พัฒนา [Goragod Wiriya](https://github.com/goragodwiriya)