ข้ามไปยังเนื้อหา

Push & Advanced: ภาพรวม

Progressive Web App ไม่ได้จำกัดอยู่แค่การทำงานแบบ offline เท่านั้น แพลตฟอร์ม browser มี API สำหรับ engagement หลายชุดที่ทำให้ PWA ของคุณทำงานได้เหมือนแอป native ชั้นหนึ่ง — ตื่นขึ้นมาส่ง notification, แสดงจำนวน badge ที่ยังไม่ได้อ่าน, รับเนื้อหาที่ผู้ใช้แชร์มา และรีเฟรชข้อมูลใน background

โมดูลนี้ครอบคลุมความสามารถห้าอย่าง:

ความสามารถAPIต้องการ server?ต้องขอ permission?
Local notificationsNotifications APIไม่ใช่
Push messagesPush APIใช่ (VAPID)ใช่
App badgeBadging APIไม่ไม่
แชร์เนื้อหาWeb Share + Share Targetไม่ไม่
รีเฟรชใน backgroundPeriodic Background Syncไม่ใช่ (ต้อง install)

ผู้ใช้ใช้เวลาส่วนใหญ่อยู่นอกแอปของคุณ API เหล่านี้คือสะพานที่พาพวกเขากลับมา:

  • Notifications ดึงผู้ใช้กลับมาด้วยข้อความที่เหมาะสมและทันเวลา — อัปเดตออเดอร์, ข้อความแชท, การแจ้งเตือน
  • Push ทำให้ server ของคุณเริ่ม notification ได้แม้ผู้ใช้จะไม่มีแท็บเปิดอยู่
  • Badging แสดงจำนวน unread บน icon แอปโดยไม่ต้องให้ผู้ใช้เปิดแอป
  • Share Target ผสาน PWA ของคุณเข้าสู่ OS share sheet เพื่อให้ผู้ใช้แชร์รูปภาพ ลิงก์ และข้อความเข้ามาในแอปโดยตรง
  • Periodic Background Sync ทำให้เนื้อหาสดใหม่สำหรับครั้งต่อไปที่ผู้ใช้จะเปิดแอป แม้อุปกรณ์จะ offline ก่อนหน้านี้
  1. ภาพรวม (หน้านี้) — ตารางความสามารถและภาพรวม permissions
  2. Notifications — Notifications API: ขอ permission, แสดง notification จากหน้าเพจและจาก service worker, จัดการ notificationclick
  3. Push API — push แบบ end-to-end: VAPID keys, การ subscribe, ส่ง subscription ไปยัง server, push event ใน SW
  4. Badging and Share Targetnavigator.setAppBadge, share_target ใน manifest และ navigator.share
  5. Periodic Background Sync — ลงทะเบียน periodic sync, จัดการ periodicsync event และข้อจำกัดต่างๆ

API ส่วนใหญ่ต้องการให้ผู้ใช้ อนุญาตอย่างชัดเจน กฎทองคือ:

ขอ permission ในบริบทที่เหมาะสม — หลังจากผู้ใช้สมัครรับ notification, สั่งซื้อเสร็จ, หรือแตะ “เปิดการแจ้งเตือน” อย่าขอตั้งแต่โหลดหน้าเพจครั้งแรก

PWA API ขั้นสูงตัวใดต่อไปนี้ที่ต้องมี backend server พร้อม VAPID key?
จังหวะที่ดีที่สุดในการขอ notification permission คือเมื่อใด?
API ใดที่ทำให้ PWA ที่ติดตั้งแล้วแสดงจำนวนที่ยังไม่อ่านบน icon แบบเหลือบมองเห็น?