Meluncurkan Handler API

Kontrol cara aplikasi Anda diluncurkan.

Launch Handler API memungkinkan Anda mengontrol cara peluncuran aplikasi, misalnya, apakah menggunakan jendela yang ada atau baru dan apakah jendela yang dipilih akan diarahkan ke URL peluncuran. Seperti halnya File Handing API, tindakan ini juga mengantrekan objek LaunchParams di window.launchQueue halaman yang diluncurkan.

Status saat ini

Langkah Status
1. Buat penjelasan Selesai
2. Buat draf awal spesifikasi Selesai
3. Mengumpulkan masukan & melakukan iterasi desain Selesai
4. Uji coba origin. Selesai
5. Peluncuran Selesai

Menggunakan Launch Handler API

Dukungan browser

Launch Handler hanya tersedia di ChromeOS.

Dukungan Browser

  • 110
  • 110
  • x
  • x

Sumber

Antarmuka

Launch Handler API menentukan dua antarmuka baru.

LaunchParams : Objek yang berisi targetURL yang akan ditangani oleh konsumen. LaunchQueue : Antrean diluncurkan sampai ditangani oleh konsumen yang ditentukan.

Anggota manifes launch_handler

Untuk menentukan perilaku peluncuran aplikasi Anda secara deklaratif, tambahkan anggota manifes launch_handler ke manifes Anda. Kolom ini memiliki satu sub-kolom yang disebut client_mode. Ini memungkinkan Anda mengontrol apakah klien baru atau yang sudah ada harus diluncurkan, dan apakah klien ini harus dibuka. Contoh di bawah menunjukkan file dengan nilai contoh yang akan selalu mengarahkan semua peluncuran ke klien baru.

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

Jika tidak ditentukan, launch_handler akan ditetapkan secara default ke {"client_mode": "auto"}. Nilai yang diizinkan untuk sub-kolom adalah:

  • client_mode:
    • navigate-new: Konteks penjelajahan baru dibuat di jendela aplikasi web untuk memuat URL target peluncuran.
    • navigate-existing: Bagian yang terakhir berinteraksi dengan konteks penjelajahan di jendela aplikasi web dibuka ke URL target peluncuran.
    • focus-existing: Yang terakhir berinteraksi dengan konteks penjelajahan di jendela aplikasi web dipilih untuk menangani peluncuran. Objek LaunchParams baru dengan targetURL yang ditetapkan ke URL peluncuran akan diantrekan di window.launchQueue dokumen.
    • auto: Perilaku bergantung pada agen pengguna untuk menentukan tindakan yang paling tepat untuk platform. Misalnya, perangkat seluler hanya mendukung klien tunggal dan akan menggunakan existing-client, sedangkan perangkat desktop mendukung beberapa jendela dan akan menggunakan navigate-new untuk menghindari kehilangan data.

Properti client_mode juga menerima daftar (array) nilai, tempat nilai valid pertama akan digunakan. Tindakan ini memungkinkan nilai baru ditambahkan ke spesifikasi tanpa mengganggu kompatibilitas mundur dengan implementasi yang ada.

Misalnya, jika nilai hipotesis "focus-matching-url" ditambahkan, situs akan menentukan "client_mode": ["focus-matching-url", "navigate-existing"] untuk terus mengontrol perilaku browser lama yang tidak mendukung "focus-matching-url".

Menggunakan window.launchQueue

Dalam kode berikut, fungsi extractSongID() mengekstrak songID dari URL yang diteruskan saat peluncuran. File ini digunakan untuk memutar lagu di PWA pemutar musik.

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

Demo

Anda dapat melihat demo cara kerja Launch Handler API di Demo Pengendali Peluncuran PWA. Pastikan Anda memeriksa kode sumber aplikasi untuk melihat cara aplikasi menggunakan Launch Handler API.

  1. Instal aplikasi Musicr 2.0 di perangkat ChromeOS.
  2. Kirim link ke diri Anda sendiri dalam aplikasi chat dengan format https://launch-handler.glitch.me?track=https://example.com/music.mp3. (Anda dapat menyesuaikan https://example.com/music.mp3 untuk setiap URL yang mengarah ke file audio, misalnya, https://launch-handler.glitch.me?track=https://cdn.glitch.me/3e952c9c-4d6d-4de4-9873-23cf976b422e%2Ffile_example_MP3_700KB.mp3?v=1638795977190).
  3. Klik link di aplikasi chat dan perhatikan cara Musicr 2.0 terbuka dan memutar lagu.
  4. Klik lagi link di aplikasi chat dan perhatikan bahwa Anda tidak akan mendapatkan instance kedua dari Musicr 2.0.

Masukan

Tim Chromium ingin mengetahui pengalaman Anda menggunakan Launch Handler API.

Beri tahu kami tentang desain API

Apakah ada sesuatu pada API yang tidak berfungsi seperti yang Anda harapkan? Atau apakah ada metode atau properti yang hilang yang diperlukan untuk menerapkan ide Anda? Punya pertanyaan atau komentar tentang model keamanan? Laporkan masalah spesifikasi di repo GitHub yang sesuai, atau tambahkan pendapat Anda ke masalah yang sudah ada.

Melaporkan masalah terkait penerapan

Apakah Anda menemukan bug pada penerapan Chromium? Atau apakah implementasinya berbeda dengan spesifikasi? Laporkan bug di new.crbug.com. Pastikan untuk menyertakan detail sebanyak mungkin, petunjuk sederhana untuk mereproduksi, dan masukkan Blink>AppManifest di kotak Komponen. Glitch sangat cocok untuk membagikan repro dengan cepat dan mudah.

Menunjukkan dukungan untuk API

Apakah Anda berencana menggunakan Launch Handler API? Dukungan publik Anda membantu tim Chromium memprioritaskan fitur dan menunjukkan kepada vendor browser lain betapa pentingnya mendukung fitur tersebut.

Kirim tweet ke @ChromiumDev menggunakan hashtag #LaunchHandler dan beri tahu kami di mana dan bagaimana Anda menggunakannya.

Link bermanfaat