Kontrol cara aplikasi Anda diluncurkan.
Launch Handler API memungkinkan Anda mengontrol cara peluncuran aplikasi, misalnya, apakah aplikasi menggunakan
yang ada atau jendela baru dan apakah jendela yang dipilih diarahkan ke URL peluncuran. Seperti halnya dengan
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. 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
Antarmuka
Launch Handler API menentukan dua antarmuka baru.
LaunchParams
: Objek yang berisi targetURL
yang akan ditangani oleh konsumen.
LaunchQueue
: Antrean akan diluncurkan hingga 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
. Dengan alat ini, Anda dapat mengontrol apakah
klien yang ada harus diluncurkan dan
jika klien ini harus dibuka. Contoh berikut
menunjukkan file dengan nilai contoh yang selalu mengarahkan semua peluncuran ke instance
dengan klien besar.
{
"launch_handler": {
"client_mode": "navigate-new"
}
}
Jika tidak ditentukan, launch_handler
akan ditetapkan secara default ke {"client_mode": "auto"}
. Nilai yang diizinkan untuk
sub-kolomnya adalah:
client_mode
:navigate-new
: Konteks penjelajahan baru dibuat di jendela aplikasi web untuk memuat target peluncuran .navigate-existing
: Pengguna terakhir kali berinteraksi dengan konteks penjelajahan di aplikasi web akan membuka URL target peluncuran.focus-existing
: Konteks penjelajahan yang terakhir berinteraksi di jendela aplikasi web dipilih untuk menangani peluncuran. ObjekLaunchParams
baru dengantargetURL
-nya ditetapkan ke URL peluncuran akan diantrekan diwindow.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 menggunakanexisting-client
, sedangkan perangkat desktop mendukung beberapa jendela dan akan menggunakannavigate-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 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
Pada kode berikut, fungsi extractSongID()
mengekstrak songID
dari URL
lulus pada 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 Launch Handler API dalam Demo Pengendali Peluncuran PWA. Pastikan untuk memeriksa kode sumber aplikasi untuk melihat cara aplikasi menggunakan Meluncurkan Handler API.
- Instal aplikasi Musicr 2.0.
- Kirim link kepada diri Anda sendiri di aplikasi chat dalam bentuk
https://launch-handler.glitch.me?track=https://example.com/music.mp3
. (Anda dapat menyesuaikanhttps://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
). - Klik link di aplikasi chat Anda dan perhatikan bagaimana Musicr 2.0 membuka dan memutar lagu.
- Klik tautan di aplikasi obrolan Anda lagi dan perhatikan bahwa Anda tidak akan mendapatkan Musicr 2.0.
Masukan
Tim Chromium ingin mengetahui pengalaman Anda saat menggunakan 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 implementasi 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 berbagi repro cepat.
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 mereka.
Kirim tweet ke @ChromiumDev menggunakan hashtag
#LaunchHandler
dan
beri tahu kami di mana dan bagaimana Anda menggunakannya.