Khởi chạy API trình xử lý

Kiểm soát cách phát hành ứng dụng.

Launch Handler API (API Trình xử lý khởi chạy) cho phép bạn kiểm soát cách khởi chạy ứng dụng, chẳng hạn như liệu ứng dụng có sử dụng cửa sổ hiện có hay cửa sổ mới và liệu cửa sổ đã chọn có được chuyển đến URL khởi chạy hay không. Giống như File Handing API, thao tác này cũng sẽ đưa một đối tượng LaunchParams vào hàng đợi trong window.launchQueue của trang đã khởi chạy.

Trạng thái hiện tại

Bước Trạng thái
1. Tạo thông báo giải thích Hoàn tất
2. Tạo bản nháp ban đầu của quy cách Hoàn tất
3. Thu thập ý kiến phản hồi và lặp lại thiết kế Hoàn chỉnh
4. Bản dùng thử theo nguyên gốc. Hoàn chỉnh
5. Ra mắt Hoàn tất

Sử dụng Launch Handler API (API Trình xử lý khởi chạy)

Hỗ trợ trình duyệt

Hỗ trợ trình duyệt

  • Chrome: 110.
  • Cạnh: 110.
  • Firefox: không được hỗ trợ.
  • Safari: không được hỗ trợ.

Nguồn

Giao diện

Launch Handler API định nghĩa hai giao diện mới.

LaunchParams : Một đối tượng chứa targetURL do người dùng xử lý. LaunchQueue : Hàng đợi khởi chạy cho đến khi được người dùng đã chỉ định xử lý.

Thành phần trong tệp kê khai launch_handler

Để chỉ định rõ hành vi khởi chạy của ứng dụng, hãy thêm thành phần tệp kê khai launch_handler vào tệp kê khai. Trường này có một trường con tên là client_mode. Phương thức này cho phép bạn kiểm soát việc có khởi chạy ứng dụng mới hay ứng dụng hiện có và có điều hướng ứng dụng này hay không. Ví dụ sau đây cho thấy một tệp có các giá trị mẫu sẽ luôn định tuyến tất cả các lần khởi chạy đến một ứng dụng mới.

{
  "launch_handler": {
    "client_mode": "navigate-new"
  }
}

Nếu không được chỉ định, launch_handler sẽ mặc định là {"client_mode": "auto"}. Các giá trị được phép cho các trường phụ là:

  • client_mode:
    • navigate-new: Bối cảnh duyệt web mới được tạo trong cửa sổ ứng dụng web để tải mục tiêu khởi chạy URL.
    • navigate-existing: Ngữ cảnh duyệt web được tương tác gần đây nhất trong cửa sổ ứng dụng web sẽ được chuyển đến URL mục tiêu của lần chạy.
    • focus-existing: Ngữ cảnh duyệt web được tương tác gần đây nhất trong cửa sổ ứng dụng web sẽ được chọn để xử lý quá trình khởi chạy. Một đối tượng LaunchParams mới có targetURL được đặt thành URL khởi chạy sẽ được đưa vào hàng đợi trong window.launchQueue của tài liệu.
    • auto: Hành vi này tuỳ thuộc vào tác nhân người dùng để quyết định cách phù hợp nhất với nền tảng. Để ví dụ: thiết bị di động chỉ hỗ trợ một ứng dụng và sẽ sử dụng existing-client, trong khi thiết bị máy tính hỗ trợ nhiều cửa sổ và sẽ sử dụng navigate-new để tránh mất dữ liệu.

Thuộc tính client_mode cũng chấp nhận một danh sách (mảng) giá trị, trong đó giá trị hợp lệ đầu tiên sẽ là đã sử dụng. Điều này cho phép thêm các giá trị mới vào thông số kỹ thuật mà không phá vỡ khả năng tương thích ngược với những cách triển khai hiện có.

Ví dụ: nếu thêm giá trị giả định "focus-matching-url", các trang web sẽ chỉ định "client_mode": ["focus-matching-url", "navigate-existing"] để tiếp tục kiểm soát hành vi của các trình duyệt cũ không hỗ trợ "focus-matching-url".

Sử dụng window.launchQueue

Trong mã sau, hàm extractSongID() trích xuất songID từ URL được truyền khi khởi chạy. Thao tác này dùng để phát một bài hát trong PWA của trình phát nhạc.

if ('launchQueue' in window) {
  launchQueue.setConsumer((launchParams) => {
    if (launchParams.targetURL) {
      const songID = extractSongId(launchParams.targetURL);
      if (songID) {
        playSong(songID);
      }
    }
  });
}

Bản minh hoạ

Bạn có thể xem bản minh hoạ về cách hoạt động của Launch Handler API trong Bản minh hoạ trình xử lý khởi chạy PWA. Hãy nhớ xem mã nguồn của ứng dụng để xem cách ứng dụng sử dụng Khởi chạy Handler API.

  1. Cài đặt ứng dụng Musicr 2.0.
  2. Gửi cho chính bạn một đường liên kết trong ứng dụng trò chuyện ở dạng https://launch-handler.glitch.me?track=https://example.com/music.mp3. (Bạn có thể tuỳ chỉnh https://example.com/music.mp3 cho mọi URL trỏ đến một tệp âm thanh, chẳng hạn như https://launch-handler.glitch.me?track=https://cdn.glitch.me/3e952c9c-4d6d-4de4-9873-23cf976b422e%2Ffile_example_MP3_700KB.mp3?v=1638795977190).
  3. Nhấp vào đường liên kết trong ứng dụng nhắn tin và chú ý cách Musicr 2.0 mở và phát bản nhạc.
  4. Nhấp lại vào đường liên kết trong ứng dụng trò chuyện và bạn sẽ thấy rằng sẽ không có phiên bản thứ hai của Musicr 2.0.

Phản hồi

Nhóm Chromium muốn tìm hiểu về trải nghiệm của bạn với Launch Handler API (API Trình xử lý khởi chạy).

Giới thiệu cho chúng tôi về thiết kế API

Có điều gì về API không hoạt động như bạn mong đợi không? Hay có phương thức hoặc thuộc tính nào bị thiếu mà bạn cần để triển khai ý tưởng của mình không? Có câu hỏi hoặc nhận xét về bảo mật mẫu? Gửi vấn đề về thông số kỹ thuật trên kho lưu trữ GitHub tương ứng hoặc thêm ý kiến của bạn vào một vấn đề hiện có.

Báo cáo vấn đề về việc triển khai

Bạn có tìm thấy lỗi khi triển khai Chromium không? Hay cách triển khai có khác với thông số kỹ thuật không? Gửi lỗi tại new.crbug.com. Hãy nhớ cung cấp càng nhiều thông tin chi tiết càng tốt, hướng dẫn cách tái hiện lỗi và nhập Blink>AppManifest vào hộp Components (Thành phần). Glitch rất hữu ích khi chia sẻ các bản trình bày nhanh.

Hiện thông tin hỗ trợ về API này

Bạn có dự định sử dụng API Trình xử lý khởi chạy không? Sự ủng hộ công khai của bạn giúp nhóm Chromium ưu tiên các tính năng và cho các nhà cung cấp trình duyệt khác thấy tầm quan trọng của việc hỗ trợ các tính năng đó.

Gửi một tweet tới @ChromiumDev kèm theo hashtag #LaunchHandler và cho chúng tôi biết bạn đang sử dụng ở đâu và như thế nào.

Các đường liên kết hữu ích