Đang chuẩn bị cho các chế độ hiển thị của ngày mai

PWA có thể dùng thuộc tính "display_override" để xử lý các chế độ hiển thị đặc biệt.

Tệp kê khai ứng dụng web là một tệp JSON cho trình duyệt biết về Ứng dụng web lũy tiến của bạn và cách ứng dụng này hoạt động khi được cài đặt trên máy tính hoặc thiết bị di động của người dùng. Thông qua thuộc tính display, bạn có thể tuỳ chỉnh giao diện người dùng trình duyệt sẽ xuất hiện khi ứng dụng của bạn được khởi chạy. Ví dụ: bạn có thể ẩn thanh địa chỉ và giao diện Chrome. Bạn thậm chí có thể thiết lập để trò chơi khởi chạy ở chế độ toàn màn hình. Để tóm tắt nhanh, dưới đây là các chế độ hiển thị được chỉ định tại thời điểm bài viết này được viết.

Thuộc tính Sử dụng
fullscreen Mở ứng dụng web mà không có giao diện người dùng trình duyệt và chiếm toàn bộ khu vực hiển thị có sẵn.
standalone Mở ứng dụng web để có giao diện và cảm giác như một ứng dụng độc lập. Ứng dụng này chạy trong cửa sổ riêng, tách biệt với trình duyệt và ẩn các phần tử giao diện người dùng tiêu chuẩn của trình duyệt, chẳng hạn như thanh URL.
minimal-ui Chế độ này tương tự như standalone, nhưng cung cấp cho người dùng một bộ phần tử giao diện người dùng tối thiểu để kiểm soát hoạt động điều hướng (chẳng hạn như quay lại và tải lại).
browser Trải nghiệm trình duyệt tiêu chuẩn.

Các chế độ hiển thị này tuân theo một chuỗi dự phòng được xác định rõ ("fullscreen""standalone""minimal-ui""browser"). Nếu một trình duyệt không hỗ trợ một chế độ nhất định, thì trình duyệt đó sẽ chuyển sang chế độ hiển thị tiếp theo trong chuỗi.

Những điểm hạn chế của thuộc tính display

Vấn đề với phương pháp chuỗi dự phòng có dây này có 3 điểm:

  • Nhà phát triển không thể yêu cầu "minimal-ui" mà không bị buộc quay lại chế độ hiển thị "browser" trong trường hợp một trình duyệt nhất định không hỗ trợ "minimal-ui".
  • Nhà phát triển không có cách nào để xử lý sự khác biệt giữa các trình duyệt, chẳng hạn như liệu trình duyệt có bao gồm hay loại trừ nút quay lại trong cửa sổ cho chế độ "standalone" hay không.
  • Hành vi hiện tại khiến bạn không thể giới thiệu các chế độ hiển thị mới theo cách tương thích ngược, vì các chế độ khám phá như chế độ ứng dụng theo thẻ không có vị trí tự nhiên trong chuỗi dự phòng.

Thuộc tính display_override

Những vấn đề này được giải quyết bằng thuộc tính display_override mà trình duyệt xem xét trước thuộc tính display. Giá trị của tham số này là một chuỗi các chuỗi được coi là theo thứ tự và chế độ hiển thị được hỗ trợ đầu tiên sẽ được áp dụng. Nếu không có thuộc tính nào được hỗ trợ, trình duyệt sẽ quay lại đánh giá trường display.

Trong ví dụ bên dưới, chuỗi dự phòng chế độ hiển thị sẽ như sau. (Thông tin chi tiết về "window-controls-overlay" nằm ngoài phạm vi của bài viết này.)

  1. "window-controls-overlay" (Trước tiên, hãy xem display_override.)
  2. "minimal-ui"
  3. "standalone" (Khi display_override đã hết, hãy đánh giá display.)
  4. "minimal-ui" (Cuối cùng, hãy sử dụng chuỗi dự phòng display.)
  5. "browser"
{
  "display_override": ["window-controls-overlay", "minimal-ui"],
  "display": "standalone",
}

Để duy trì khả năng tương thích ngược, mọi chế độ hiển thị trong tương lai sẽ chỉ được chấp nhận dưới dạng giá trị của display_override, chứ không phải display. Những trình duyệt không hỗ trợ display_override sẽ quay lại thuộc tính display và bỏ qua display_override dưới dạng một thuộc tính không xác định của tệp kê khai ứng dụng web.

Lời cảm ơn

Thuộc tính display_override được chính thức hoá bởi Daniel Murphy.