Meluncurkan Handler API

Mengontrol cara aplikasi diluncurkan.

Launch Handler API memungkinkan Anda mengontrol cara aplikasi diluncurkan, misalnya, apakah aplikasi menggunakan jendela yang ada atau yang baru dan apakah jendela yang dipilih 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. Membuat penjelasan Selesai
2. Membuat draf awal spesifikasi Selesai
3. Mengumpulkan masukan & melakukan iterasi pada desain Selesai
4. Uji coba origin. Selesai
5. Peluncuran Selesai

Menggunakan Launch Handler API

Dukungan browser

Dukungan Browser

  • Chrome: 110.
  • Edge: 110.
  • Firefox: tidak didukung.
  • Safari: tidak didukung.

Sumber

Antarmuka

Launch Handler API menentukan dua antarmuka baru.

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

Anggota manifes launch_handler

Untuk menentukan perilaku peluncuran aplikasi secara deklaratif, tambahkan anggota manifes launch_handler ke manifes Anda. Kolom ini memiliki satu subkolom yang disebut client_mode. Hal ini memungkinkan Anda mengontrol apakah klien baru atau yang sudah ada harus diluncurkan dan apakah klien ini harus dinavigasi. Contoh berikut menunjukkan file dengan nilai contoh yang akan selalu merutekan semua peluncuran ke klien baru.

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

Jika tidak ditentukan, launch_handler 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: Konteks penjelajahan yang baru-baru ini berinteraksi di jendela aplikasi web akan diarahkan ke URL target peluncuran.
    • focus-existing: Konteks penjelajahan yang terakhir berinteraksi di jendela aplikasi web dipilih untuk menangani peluncuran. Objek LaunchParams baru dengan targetURL yang ditetapkan ke URL peluncuran akan dimasukkan ke dalam antrean di window.launchQueue dokumen.
    • auto: Perilaku ini bergantung pada agen pengguna untuk memutuskan apa yang paling sesuai untuk platform. Misalnya, perangkat seluler hanya mendukung satu klien 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, dengan nilai pertama yang valid akan digunakan. Hal ini memungkinkan nilai baru ditambahkan ke spesifikasi tanpa merusak kompatibilitas mundur dengan implementasi yang ada.

Misalnya, jika nilai hipotetis "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. 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 PWA Launch Handler. Pastikan untuk melihat kode sumber aplikasi untuk melihat cara aplikasi menggunakan Launch Handler API.

  1. Instal aplikasi Musicr 2.0.
  2. Kirim link kepada diri Anda sendiri di aplikasi chat dalam bentuk https://launch-handler.glitch.me?track=https://example.com/music.mp3. (Anda dapat menyesuaikan https://example.com/music.mp3 untuk URL apa pun 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 Anda dan perhatikan bagaimana Musicr 2.0 membuka dan memutar lagu.
  4. Klik link di aplikasi chat lagi dan perhatikan bahwa Anda tidak akan mendapatkan instance kedua Musicr 2.0.

Masukan

Tim Chromium ingin mengetahui pengalaman Anda dengan Launch Handler API.

Ceritakan kepada kami tentang desain API

Apakah ada sesuatu tentang API yang tidak berfungsi seperti yang Anda harapkan? Atau apakah ada metode atau properti yang tidak ada yang Anda perlukan untuk menerapkan ide Anda? Ada pertanyaan atau komentar tentang model keamanan? Ajukan masalah spesifikasi di repo GitHub yang sesuai, atau tambahkan pendapat Anda ke masalah yang 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 untuk mereproduksi, dan masukkan Blink>AppManifest di kotak Components. Glitch sangat cocok untuk membagikan reka ulang cepat.

Menampilkan 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 tempat dan cara Anda menggunakannya.

Link bermanfaat