Uygulamanızın nasıl başlatıldığını kontrol edin.
Launch Handler API'si, uygulamanızın nasıl başlatılacağını kontrol etmenizi sağlar. Örneğin, uygulamanızın mevcut veya yeni bir pencere kullanıp kullanmadığını ve seçilen pencerenin başlatma URL'sine yönlendirilip gitmediğini kontrol edebilirsiniz. File Handing API'de olduğu gibi bu işlem de başlatılan sayfanın window.launchQueue
öğesinde bir LaunchParams
nesnesini sıraya koyar.
Mevcut durum
Adım | Durum |
---|---|
1. Açıklayıcı oluşturun | Tamamlandı |
2. İlk spesifikasyon taslağını oluşturun | Tamamlandı |
3. Geri bildirim alma ve tasarım üzerinde yineleme | Eksiksiz |
4. Kaynak denemesi. | Eksiksiz |
5. Lansman | Tamamlandı |
Launch Handler API'yi kullanma
Tarayıcı desteği
İşleyici Başlat yalnızca ChromeOS'te kullanılabilir.
Arayüzler
Launch Handler API'si iki yeni arayüz tanımlar.
LaunchParams
: Tüketici tarafından işlenecek targetURL
öğesini içeren bir nesne.
LaunchQueue
: Sıralar, belirtilen tüketici tarafından işlenene kadar başlatılır.
launch_handler
manifest üyesi
Uygulamanızın başlatma davranışını bildirerek belirtmek için launch_handler
manifest üyesini manifest dosyanıza ekleyin. client_mode
adlı bir alt alanı vardır. Yeni bir istemcinin mi yoksa mevcut bir istemcinin mi başlatılacağını ve bu istemcide gezinmenin gerekip gerekmediğini kontrol etmenize olanak tanır. Aşağıdaki örnekte, tüm lansmanları her zaman yeni bir istemciye yönlendiren örnek değerler içeren bir dosya gösterilmektedir.
{
"launch_handler": {
"client_mode": "navigate-new"
}
}
Belirtilmemesi durumunda launch_handler
, varsayılan olarak {"client_mode": "auto"}
değerine ayarlanır. Alt alanlar için izin verilen değerler şunlardır:
client_mode
:navigate-new
: Lansmanın hedef URL'sini yüklemek için web uygulaması penceresinde yeni bir tarama bağlamı oluşturulur.navigate-existing
: Bir web uygulaması penceresinde tarama içeriğiyle en son etkileşimde bulunulan kullanıcı, lansmanın hedef URL'sine yönlendirilir.focus-existing
: Lansmanda, web uygulaması penceresinde tarama bağlamıyla en son etkileşime geçen kullanıcı seçilir.targetURL
değeri lansman URL'sine ayarlanmış yeni birLaunchParams
nesnesi, dokümanınwindow.launchQueue
öğesinde sıraya alınacak.auto
: Platform için neyin en uygun olduğuna karar vermek kullanıcı aracısına bağlıdır. Örneğin, mobil cihazlar yalnızca tek istemcileri destekler veexisting-client
kullanır. Masaüstü cihazlar ise birden fazla pencereyi destekler ve veri kaybını önlemek içinnavigate-new
kullanır.
client_mode
özelliği, ilk geçerli değerin kullanılacağı bir değer listesini (dizisi) de kabul eder. Bunun amacı, mevcut uygulamalarla geriye dönük uyumluluğu bozmadan spesifikasyona yeni değerler eklenmesine olanak tanımaktır.
Örneğin, varsayımsal değer "focus-matching-url"
eklendiğinde, siteler "focus-matching-url"
özelliğini desteklemeyen eski tarayıcıların davranışını kontrol etmeye devam etmek için "client_mode": ["focus-matching-url", "navigate-existing"]
değerini belirtir.
window.launchQueue dosyasını kullanma
Aşağıdaki kodda extractSongID()
işlevi başlatma sırasında iletilen URL'den bir songID
çıkarır. Bu, müzik çalar PWA'da şarkı çalmak için kullanılır.
if ('launchQueue' in window) {
launchQueue.setConsumer((launchParams) => {
if (launchParams.targetURL) {
const songID = extractSongId(launchParams.targetURL);
if (songID) {
playSong(songID);
}
}
});
}
Demo
Launch Handler API'nin nasıl çalıştığını gösteren bir demoyu PWA Lansman İşleyici Demosu'nda görebilirsiniz. Launch Handler API'yi nasıl kullandığını öğrenmek için uygulamanın kaynak koduna göz atmayı unutmayın.
- Musicr 2.0 uygulamasını bir ChromeOS cihaza yükleyin.
- Kendinize
https://launch-handler.glitch.me?track=https://example.com/music.mp3
biçimindeki bir sohbet uygulamasında bağlantı gönderin. (Bir ses dosyasına işaret eden URL'ler içinhttps://example.com/music.mp3
öğesini özelleştirebilirsiniz. Örneğin,https://launch-handler.glitch.me?track=https://cdn.glitch.me/3e952c9c-4d6d-4de4-9873-23cf976b422e%2Ffile_example_MP3_700KB.mp3?v=1638795977190
). - Sohbet uygulamanızdaki bağlantıyı tıklayın ve Musicr 2.0'ın parçayı nasıl açıp çaldığına bakın.
- Sohbet uygulamanızdaki bağlantıyı tekrar tıkladığınızda Musicr 2.0'ın ikinci bir örneğini almayacağınızı görürsünüz.
Geri bildirim
Chromium ekibi, Launch Handler API ile ilgili deneyimleriniz hakkında bilgi almak istiyor.
Bize API tasarımı hakkında bilgi verin
API'de beklediğiniz gibi çalışmayan bir şeyler mi var? Yoksa fikrinizi uygulamak için ihtiyacınız olan yöntemler veya özellikler mi var? Güvenlik modeliyle ilgili sorunuz veya yorumunuz mu var? İlgili GitHub deposunda bir spesifikasyon sorunu bildirin veya mevcut bir soruna düşüncelerinizi ekleyin.
Uygulamayla ilgili bir sorunu bildirin
Chromium'un uygulanmasıyla ilgili bir hata buldunuz mu? Yoksa uygulama, spesifikasyondan farklı mı?
new.crbug.com adresinde bir hata bildiriminde bulunun. Mümkün olduğunca çok ayrıntıyı ve yeniden oluşturma için basit talimatları eklediğinizden emin olun ve Bileşenler kutusuna Blink>AppManifest
yazın.
Glitch, hızlı ve kolay yeniden oluşturmalar paylaşmak için idealdir.
API'ye desteğinizi gösterin
Launch Handler API'yi kullanmayı planlıyor musunuz? Herkese açık desteğiniz, Chromium ekibinin özellikleri önceliklendirmesine yardımcı olur ve diğer tarayıcı tedarikçilerine bunları desteklemenin ne kadar kritik olduğunu gösterir.
#LaunchHandler
hashtag'ini kullanarak @ChromiumDev'e bir tweet gönderin ve
etiketi nerede ve nasıl kullandığınızı bize bildirin.