เมื่อผู้ใช้ติดตั้ง PWA เบราว์เซอร์ต้องมีวิธีระบุ PWA ที่ไม่ซ้ำกัน แต่จนกระทั่งเมื่อไม่นานมานี้ ข้อมูลจำเพาะของไฟล์ Manifest ของเว็บแอปไม่ได้กำหนดวิธีระบุ PWA ที่ไม่ซ้ำกันอย่างชัดเจน ทำให้เบราว์เซอร์ต้องตัดสินใจและนำไปสู่การนำไปใช้งานที่แตกต่างกัน ในบางเบราว์เซอร์จะใช้ start_url
ส่วนในเบราว์เซอร์อื่นๆ จะใช้เส้นทางไปยังไฟล์ Manifest ทำให้อัปเดตช่องใดช่องหนึ่งไม่ได้
ในการแก้ปัญหานี้ เรามีพร็อพเพอร์ตี้ id
ใหม่ที่ไม่บังคับในข้อกำหนดไฟล์ Manifest ของเว็บแอป ซึ่งช่วยให้คุณกำหนดตัวระบุที่ใช้สำหรับ PWA ของคุณได้อย่างชัดเจน การเพิ่มพร็อพเพอร์ตี้ id
ลงในไฟล์ Manifest จะนำทรัพยากร Dependency ของ start_url
หรือตําแหน่งของไฟล์ Manifest ออก และทำให้มีการอัปเดตในอนาคต
พร็อพเพอร์ตี้ id
ทํางานอย่างไร
พร็อพเพอร์ตี้ id
แสดงข้อมูลระบุตัวตนของ PWA แก่เบราว์เซอร์ เมื่อเบราว์เซอร์เห็นไฟล์ Manifest ที่ไม่มีข้อมูลระบุตัวตนที่ตรงกับ PWA ที่ติดตั้งไว้แล้ว เบราว์เซอร์จะถือว่าเป็น PWA ใหม่แม้ว่าจะแสดงจาก URL เดียวกันเป็น PWA อื่นก็ตาม แต่หากไฟล์ Manifest ที่มีข้อมูลประจำตัวตรงกับ PWA ที่ติดตั้งแล้ว ระบบจะถือว่าไฟล์นั้นเป็น PWA ที่ติดตั้ง
การสนับสนุนเบราว์เซอร์
การรองรับพร็อพเพอร์ตี้ id
พร้อมให้ใช้งานใน Chrome 96 แล้ว
ฉันควรทำอย่างไรหากมีแอปที่ไม่มี id
คุณไม่จําเป็นต้องดําเนินการใดๆ และระบบจะไม่ทําให้แอปขัดข้องหากคุณไม่เพิ่ม id
ลงในไฟล์ Manifest ของเว็บแอป (ตราบใดที่ start_url
และเส้นทางไฟล์ Manifest ยังคงเหมือนเดิม) หากต้องการให้ PWA ใช้งานได้ในอนาคต คุณสามารถเพิ่มพร็อพเพอร์ตี้ id
ลงในไฟล์ Manifest ของเว็บแอป
ฉันจะกำหนดและตั้งค่า id
ได้อย่างไร
วิธีที่ปลอดภัยและแม่นยำที่สุดในการระบุ id
สำหรับ PWA คือการตรวจสอบค่าที่ Chrome คำนวณ
- หากใช้ Chrome 96 ขึ้นไป ให้เปิดแผงไฟล์ Manifest ของแผงแอปพลิเคชันในเครื่องมือสำหรับนักพัฒนาเว็บ
- หมายเหตุใต้พร็อพเพอร์ตี้ Computed App Id จะปรากฏขึ้นเมื่อไม่ได้ระบุ
id
ในไฟล์ Manifest ของเว็บแอป - คัดลอกค่า
id
ที่แสดงในหมายเหตุ (ดูภาพหน้าจอด้านล่าง) - เพิ่มพร็อพเพอร์ตี้
id
ลงในไฟล์ Manifest ของเว็บแอปโดยใช้ค่าid
ที่แสดงในโน้ต
{
...
id: "/?homescreen=1",
start_url: "/?homescreen=1",
...
}
จะเกิดอะไรขึ้นหากฉันไม่ได้ตั้งค่า id
ไม่ต้องกังวล ทุกอย่างจะยังคงเหมือนเดิม ตั้งแต่ Chrome 96 เป็นต้นไป เบราว์เซอร์จะสร้าง id
หากไม่มีอยู่ในไฟล์ Manifest โดยอิงจาก start_url
ในไฟล์ Manifest ของเว็บแอป
การเพิ่ม id
ลงในไฟล์ Manifest ของเว็บแอปจะช่วยให้คุณเปลี่ยนแปลง start_url
และเส้นทางไฟล์ Manifest ได้ (หากต้นทางของ id
นั้นไม่เปลี่ยนแปลง) เนื่องจากเบราว์เซอร์จะระบุ PWA ตาม id
ที่ระบุ ไม่ใช่ start_url
หรือเส้นทางไฟล์ Manifest
ฉันจะทดสอบได้อย่างไร
หากต้องการทดสอบลักษณะการทํางาน ให้ทําตามขั้นตอนต่อไปนี้
- ติดตั้ง PWA
- เปิด
about://web-app-internals/
แล้วตรวจสอบพร็อพเพอร์ตี้manifest_id
และstart_url
สำหรับ PWA ที่ติดตั้งไว้ - เพิ่มพร็อพเพอร์ตี้
id
ลงในไฟล์ Manifest ของเว็บแอปโดยทําตามขั้นตอนในหัวข้อฉันจะกําหนดและตั้งค่าid
ได้อย่างไรด้านบน - รีสตาร์ทเบราว์เซอร์โดยใช้
chrome://restart
เปิด PWA จากabout://apps
แล้วปิด PWA เพื่อบังคับให้รีเฟรชไฟล์ Manifest - เปิด
about://web-app-internals/
แล้วตรวจสอบพร็อพเพอร์ตี้manifest_id
เพื่อดู PWA ที่ติดตั้งเพื่อยืนยันว่าไม่มีการเปลี่ยนแปลง - เปลี่ยน
start_url
ในไฟล์ Manifest ของเว็บแอป - รีสตาร์ทเบราว์เซอร์โดยใช้
chrome://restart
เปิด PWA จากabout://apps
แล้วปิด PWA เพื่อบังคับให้รีเฟรชไฟล์ Manifest - เปิด
about://web-app-internals/
แล้วตรวจสอบพร็อพเพอร์ตี้start_url
สำหรับ PWA ที่ติดตั้งเพื่อยืนยันว่ามีการอัปเดตตามที่คาดไว้