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 chạy ứng dụng, chẳng hạn như ứng dụng dùng cửa sổ hiện có hay cửa sổ mới và liệu cửa sổ đã chọn có được điều hướng đến URL chạy hay không. Giống như API Xử lý tệp, 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

Step 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 thông số kỹ thuật Hoàn tất
3. Thu thập ý kiến phản hồi và cải tiến thiết kế Hoàn chỉnh
4. 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

Hỗ trợ trình duyệt

Trình xử lý khởi chạy chỉ có trên ChromeOS.

Hỗ trợ trình duyệt

  • 110
  • 110
  • x
  • x

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 sẽ chạy cho đến khi được thực thể tiêu thụ chỉ định xử lý.

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

Để chỉ định rõ ràng hành vi chạy ứ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 phụ tên là client_mode. Thuộc tính này cho phép bạn kiểm soát việc nên chạy một ứng dụng mới hay một ứng dụng hiện có, cũng như việc có nên điều hướng một ứng dụng này hay không. Ví dụ bên dưới cho thấy một tệp có các giá trị mẫu 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 bạn không chỉ định, launch_handler sẽ mặc định là {"client_mode": "auto"}. Các giá trị được phép cho trường phụ là:

  • client_mode:
    • navigate-new: Ngữ cảnh duyệt web mới sẽ được tạo trong cửa sổ ứng dụng web để tải URL mục tiêu của lần chạy.
    • navigate-existing: Thành phần được tương tác gần đây nhất với ngữ cảnh duyệt web trong cửa sổ ứng dụng web sẽ được chuyển đến URL mục tiêu của bản khởi chạy.
    • focus-existing: Hoạt động tương tác gần đây nhất với ngữ cảnh duyệt web trong cửa sổ ứng dụng web đượ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 chạy sẽ được đưa vào hàng đợi trong window.launchQueue của tài liệu.
    • auto: Hành vi tuỳ thuộc vào tác nhân người dùng để quyết định hoạt động nào 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ẽ được sử dụng. Điều này cho phép thêm các giá trị mới vào quy cách mà không phá vỡ khả năng tương thích ngược với các phương thức triển khai hiện có.

Ví dụ: nếu bạn 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ạ cách hoạt động của API Trình xử lý khởi chạy ứng dụng trong Bản minh hoạ trình xử lý khởi chạy ứng dụng web tiến bộ (PWA). Hãy nhớ xem mã nguồn của ứng dụng để xem cách ứng dụng sử dụng API Trình xử lý khởi chạy.

  1. Cài đặt ứng dụng Musicr 2.0 trên thiết bị ChromeOS.
  2. Gửi đường liên kết cho chính bạn trong ứng dụng trò chuyện có 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 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 để xem 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 nhắn tin và để ý rằng bạn sẽ không nhận được phiên bản thứ hai của Musicr 2.0.

Ý kiến 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).

Cho chúng tôi biết 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 để triển khai ý tưởng không? Bạn có câu hỏi hoặc nhận xét về mô hình bảo mật này? Báo cáo 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ề vấn đề hiện có.

Báo cáo sự cố về triển khai

Bạn có phát hiện lỗi trong quá trình 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? Báo cáo lỗi tại new.crbug.com. Hãy nhớ cung cấp nhiều thông tin chi tiết nhất có thể, các hướng dẫn đơn giản để tái tạo và nhập Blink>AppManifest vào hộp Thành phần. Glitch rất hữu ích khi chia sẻ các bản dựng lại nhanh chóng và dễ dàng.

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

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

Gửi một bài đăng đến @ChromiumDev kèm theo hashtag #LaunchHandler và cho chúng tôi biết bạn đang sử dụng hashtag này ở đâu và bằng cách nào.

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