README.md

4.57 KB
09/11/2024 07:47
MD
# 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
<script src="web-push-notification.js"></script>
```

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)