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"
อยู่นอกขอบเขตของบทความนี้)
"window-controls-overlay"
(ก่อนอื่น ให้ดูที่display_override
)"minimal-ui"
"standalone"
(เมื่อdisplay_override
หมด ให้ประเมินdisplay
)"minimal-ui"
(สุดท้าย ให้ใช้เชนโฆษณาสำรองdisplay
)"browser"
{
"display_override": ["window-controls-overlay", "minimal-ui"],
"display": "standalone",
}
โหมดการแสดงผลในอนาคตจะยอมรับได้เฉพาะค่า display_override
เท่านั้น แต่จะไม่ยอมรับค่า display
เพื่อให้ยังคงใช้งานร่วมกันได้
เบราว์เซอร์ที่ไม่รองรับ display_override
จะเปลี่ยนไปใช้พร็อพเพอร์ตี้ display
และละเว้น display_override
เป็นพร็อพเพอร์ตี้ไฟล์ Manifest ของเว็บแอปที่ไม่รู้จัก
ลิงก์ที่มีประโยชน์
- คำอธิบาย
- ชุดข้อความแสดงเจตนาที่จะจัดส่ง
- ข้อบกพร่องของ Chromium
- รายการสถานะ Chrome
- ที่เก็บ Manifest Incubations
บริการรับรองคำให้การ
Daniel Murphy เป็นผู้ทำให้พร็อพเพอร์ตี้ display_override
เป็นทางการ