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

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

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 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 điều hướng đến URL khởi chạy hay không. Giống như API xử lý tệp, thao tác này cũng đư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 thông số kỹ thuật 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. Phát hành Hoàn tất

Sử dụng Launch Handler API

Hỗ trợ trình duyệt

Trình xử lý 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 (API Trình xử lý khởi chạy) xác định hai giao diện mới.

LaunchParams : Một đối tượng chứa targetURL mà ứng dụng sử dụng sẽ xử lý. LaunchQueue : Hàng đợi sẽ chạy cho đến khi được đối tượng sử dụng được chỉ định xử lý.

Thành viên tệp kê khai launch_handler

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

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

Nếu không chỉ định, thì launch_handler 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: Ngữ cảnh duyệt web mới sẽ được tạo trong cửa sổ ứng dụng web để tải URL đích của lần khởi chạy.
    • navigate-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 chuyển đến URL đích của lầ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 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: Tác nhân người dùng sẽ quyết định hành vi nào phù hợp nhất với nền tảng để quyết định xem điều gì là phù hợp nhất. 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 danh sách (mảng) giá trị, trong đó giá trị hợp lệ đầu tiên sẽ được sử dụng. Việc này nhằm 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 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. Quyền 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ạ hoạt động của API Trình xử lý khởi chạy trong Bản minh hoạ Trình xử lý khởi chạy PWA. Hãy nhớ kiểm tra mã nguồn của ứng dụng để xem cách ứng dụng sử dụng API Trình xử lý 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ó biểu mẫu 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 trò chuyện rồi 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à lưu ý 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 biết trải nghiệm của bạn với Launch Handler API.

Cho chúng tôi biết về thiết kế API

Có vấn đề gì về API không hoạt động như bạn mong đợi không? Hay có thiếu phương thức hoặc thuộc tính nào mà bạn cần 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? 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 vào một vấn đề hiện có.

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

Bạn có tìm thấy lỗi trong quá trình triển khai Chromium không? Hay cách triển khai có khác với quy cách không? Hãy báo cáo lỗi tại new.crbug.com. Hãy nhớ cung cấp nhiều chi tiết nhất có thể, hướng dẫn đơn giản để tái tạo và nhập Blink>AppManifest vào hộp Thành phần. Sự cố hoạt động hiệu quả để chia sẻ các bản sao lại nhanh chóng và dễ dàng.

Hỗ trợ API

Bạn có đị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 và cho các nhà cung cấp trình duyệt khác biết tầm quan trọng của việc hỗ trợ các tính năng đó.

Gửi một tweet đến @ChromiumDev bằng hashtag #LaunchHandler và cho chúng tôi biết vị trí cũng như cách bạn sử dụng hashtag đó.

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