PWA สามารถใช้พร็อพเพอร์ตี้ "display_override" เพื่อจัดการกับโหมดการแสดงผลพิเศษ
ไฟล์ Manifest ของเว็บแอป เป็นไฟล์ JSON ที่บอกเบราว์เซอร์เกี่ยวกับ Progressive
Web App และลักษณะการทำงานของแอปเมื่อติดตั้งบนเดสก์ท็อปหรืออุปกรณ์เคลื่อนที่ของผู้ใช้
คุณสามารถปรับแต่ง UI ของเบราว์เซอร์ที่จะแสดงเมื่อเปิดแอปผ่านพร็อพเพอร์ตี้ display เช่น คุณสามารถซ่อนแถบที่อยู่และ Chrome ของเบราว์เซอร์ได้ หรือแม้แต่ทำให้เกมเปิดแบบเต็มหน้าจอได้
สรุปสั้นๆ เกี่ยวกับโหมดการแสดงผลที่ระบุไว้ในขณะที่เขียนบทความนี้มีดังนี้
| พร็อพเพอร์ตี้ | การใช้งาน |
|---|---|
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 ของเว็บแอปที่ไม่รู้จัก
ลิงก์ที่มีประโยชน์
- ผู้อธิบาย
- ชุดข้อความ Intent to Ship
- ข้อบกพร่องของ Chromium
- รายการสถานะ Chrome
- ที่เก็บ Manifest Incubations
คำขอบคุณ
พร็อพเพอร์ตี้ display_override ได้รับการกำหนดรูปแบบอย่างเป็นทางการโดย
Daniel Murphy