เตรียมพร้อมสำหรับโหมดการแสดงผลของวันพรุ่งนี้

PWA สามารถใช้พร็อพเพอร์ตี้ "display_override" เพื่อจัดการกับโหมดการแสดงผลพิเศษ

ไฟล์ Manifest ของเว็บแอปคือไฟล์ JSON ที่บอกเบราว์เซอร์เกี่ยวกับ Progressive Web App และลักษณะการทำงานเมื่อติดตั้งในเดสก์ท็อปหรืออุปกรณ์เคลื่อนที่ของผู้ใช้ คุณปรับแต่ง UI ของเบราว์เซอร์ที่จะแสดงเมื่อเปิดแอปได้ผ่านพร็อพเพอร์ตี้ display เช่น คุณอาจซ่อนแถบที่อยู่และแถบเบราว์เซอร์ได้ คุณยังทำให้เกมเปิดแบบเต็มหน้าจอได้ด้วย สรุปสั้นๆ คือโหมดการแสดงผลที่ระบุไว้ ณ เวลาที่เขียนบทความนี้มีดังนี้

พร็อพเพอร์ตี้ การใช้งาน
fullscreen เปิดเว็บแอปพลิเคชันโดยไม่มี UI เบราว์เซอร์และกินพื้นที่การแสดงผลทั้งหมด
standalone เปิดเว็บแอปให้มีลักษณะและความรู้สึกเหมือนแอปแบบสแตนด์อโลน แอปจะทำงานในหน้าต่างของตัวเองแยกจากเบราว์เซอร์ และซ่อนองค์ประกอบ UI มาตรฐานของเบราว์เซอร์ เช่น แถบ URL
minimal-ui โหมดนี้คล้ายกับ standalone แต่ให้องค์ประกอบ UI ชุดเล็กๆ แก่ผู้ใช้เพื่อควบคุมการนําทาง (เช่น ย้อนกลับและโหลดซ้ำ)
browser ประสบการณ์การใช้งานเบราว์เซอร์แบบมาตรฐาน

โหมดการแสดงผลเหล่านี้เป็นไปตามเชนโฆษณาสำรองที่กําหนดไว้อย่างชัดเจน ("fullscreen""standalone""minimal-ui""browser") หากเบราว์เซอร์ไม่รองรับโหมดหนึ่งๆ ระบบจะใช้โหมดการแสดงผลถัดไปในเชน

ข้อบกพร่องของพร็อพเพอร์ตี้ display

ปัญหาของแนวทางเชนสำรองที่กำหนดไว้ล่วงหน้านี้มีอยู่ 3 ข้อดังนี้

  • นักพัฒนาแอปจะขอ "minimal-ui" ไม่ได้หากระบบบังคับให้กลับไปใช้โหมดการแสดงผล "browser" ในกรณีที่เบราว์เซอร์ไม่รองรับ "minimal-ui"
  • นักพัฒนาซอฟต์แวร์ไม่สามารถจัดการความแตกต่างระหว่างเบราว์เซอร์ต่างๆ ได้ เช่น กรณีที่เบราว์เซอร์รวมหรือยกเว้นปุ่มย้อนกลับในหน้าต่างสำหรับโหมด "standalone"
  • ลักษณะการทํางานปัจจุบันทําให้ไม่สามารถนําโหมดการแสดงผลใหม่มาใช้ในลักษณะที่เข้ากันได้แบบย้อนหลังได้ เนื่องจากการสํารวจ เช่น โหมดแอปพลิเคชันแบบแท็บ ไม่มีตําแหน่งที่เหมาะสมในเชนการแสดงผลสำรอง

พร็อพเพอร์ตี้ display_override

ปัญหาเหล่านี้จะได้รับการแก้ไขโดยพร็อพเพอร์ตี้ display_override ซึ่งเบราว์เซอร์จะพิจารณาก่อนพร็อพเพอร์ตี้ display ค่าของแอตทริบิวต์นี้คือลําดับสตริงที่ถือว่ามีลําดับ และระบบจะใช้โหมดการแสดงผลที่รองรับรายการแรก หากไม่รองรับรูปแบบใดเลย เบราว์เซอร์จะกลับไปประเมินช่อง display

ในตัวอย่างด้านล่าง เชนการแสดงผลสำรองจะเป็นดังนี้ (รายละเอียดของ "window-controls-overlay" อยู่นอกขอบเขตของบทความนี้)

  1. "window-controls-overlay" (ก่อนอื่น ให้ดูที่ display_override)
  2. "minimal-ui"
  3. "standalone" (เมื่อ display_override หมด ให้ประเมิน display)
  4. "minimal-ui" (สุดท้าย ให้ใช้เชนโฆษณาสำรอง display)
  5. "browser"
{
  "display_override": ["window-controls-overlay", "minimal-ui"],
  "display": "standalone",
}

โหมดการแสดงผลในอนาคตจะยอมรับได้เฉพาะค่า display_override เท่านั้น แต่จะไม่ยอมรับค่า display เพื่อให้ยังคงใช้งานร่วมกันได้ เบราว์เซอร์ที่ไม่รองรับ display_override จะเปลี่ยนไปใช้พร็อพเพอร์ตี้ display และละเว้น display_override เป็นพร็อพเพอร์ตี้ไฟล์ Manifest ของเว็บแอปที่ไม่รู้จัก

บริการรับรองคำให้การ

Daniel Murphy เป็นผู้ทำให้พร็อพเพอร์ตี้ display_override เป็นทางการ