Uygulamanızın nasıl başlatıldığını kontrol edin.
Launch Handler API, uygulamanızın nasıl başlatıldığını, örneğin mevcut bir pencereyi mi yoksa yeni bir pencereyi mi kullanacağını ve seçilen pencerenin başlatma URL'sine yönlendirilip yönlendirilmediğini kontrol etmenizi sağlar. File Handing API'de olduğu gibi bu işlem de başlatılan sayfanın window.launchQueue
öğesinde bir LaunchParams
nesnesini sıraya alır.
Mevcut durum
Adım | Durum |
---|---|
1. Açıklama oluşturun | Tamamlandı |
2. Spesifikasyonun ilk taslağını oluşturma | Tamamlandı |
3. Geri bildirim toplama ve tasarımda yineleme | Eksiksiz |
4. Kaynak denemesi. | Eksiksiz |
5. Lansman | Tamamlandı |
Launch Handler API'yi kullanma
Tarayıcı desteği
Başlatma İşleyicisi 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ı bildirimli olarak belirtmek için launch_handler
manifest üyesini manifest dosyanıza ekleyin. client_mode
adında 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 edebilmenizi sağlar. Aşağıdaki örnekte, tüm başlatmaları her zaman yeni bir istemciye yönlendirecek örnek değerlere sahip bir dosya gösterilmektedir.
{
"launch_handler": {
"client_mode": "navigate-new"
}
}
Belirtilmezse launch_handler
varsayılan olarak {"client_mode": "auto"}
olur. Alt alanlar için izin verilen değerler şunlardır:
client_mode
:navigate-new
: Başlatmanın hedef URL'sini yüklemek için web uygulaması penceresinde yeni bir göz atma bağlamı oluşturulur.navigate-existing
: Bir web uygulaması penceresindeki tarama bağlamıyla en son etkileşimde bulunulan kullanıcı, başlatmanın hedef URL'sine yönlendirilir.focus-existing
: Başlatma işlemini gerçekleştirmek için bir web uygulaması penceresinde göz atma bağlamıyla en son etkileşimde bulunulan kullanıcı seçilir.targetURL
öğesi başlatma URL'sine ayarlanmış yeni birLaunchParams
nesnesi, dokümanınwindow.launchQueue
öğesinde sıraya alınır.auto
: Platform için neyin en iyi sonucu vereceğine kullanıcı aracısı karar verir. Örneğin, mobil cihazlar yalnızca tekli 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 (diziyi) de kabul eder. Bunun amacı, mevcut uygulamalarla geriye dönük uyumluluğu bozmadan spesifikasyona yeni değerlerin eklenmesine olanak tanımaktır.
Örneğin, "focus-matching-url"
varsayımsal değer eklenirse 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"]
yöntemini belirtir.
window.launchQueue kullanımı
Aşağıdaki kodda extractSongID()
işlevi, başlatma sırasında iletilen URL'den bir songID
çıkarır. Bu özellik, 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
PWA Lansman İşleyicisi Demosu'nda Launch Handler API'nin çalışırken bir demosunu görebilirsiniz. Launch Handler API'yi nasıl kullandığını görmek için uygulamanın kaynak koduna mutlaka göz atın.
- Musicr 2.0 uygulamasını bir ChromeOS cihaza yükleyin.
https://launch-handler.glitch.me?track=https://example.com/music.mp3
formunun sohbet uygulamasında kendinize bir bağlantı gönderin. (https://example.com/music.mp3
'i, ses dosyasına işaret eden herhangi bir URL için ö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 dikkat edin.
- Sohbet uygulamanızdaki bağlantıyı tekrar tıklayın ve Musicr 2.0'ın ikinci bir örneğini almayacağınızı unutmayın.
Geri bildirim
Chromium ekibi, Launch Handler API ile ilgili deneyimlerinizi öğrenmek istiyor.
Bize API tasarımı hakkında bilgi verin
API ile ilgili beklediğiniz gibi çalışmayan bir şey mi var? Ya da fikrinizi uygulamak için gereken eksik yöntemler veya özellikler var mı? Güvenlik modeliyle ilgili sorunuz veya yorumunuz mu var? İlgili GitHub deposunda spesifikasyon sorunu oluşturun veya mevcut bir soruna düşüncelerinizi ekleyin.
Uygulamayla ilgili bir sorunu bildirme
Chromium'un uygulamasında bir hata buldunuz mu? Yoksa uygulama, spesifikasyondan farklı mı?
new.crbug.com adresinde hata bildiriminde bulunun. Olabildiğince çok ayrıntı eklediğinizden ve yeniden oluşturma ile ilgili basit talimatları eklediğinizden emin olun ve Bileşenler kutusuna Blink>AppManifest
girin.
Glitch hızlı ve kolay yeniden önerileri paylaşmak için idealdir.
API'ye desteği gösterin
Launch Handler API'yi kullanmayı planlıyor musunuz? Herkese açık desteğiniz, Chromium ekibinin özelliklere öncelik vermesine yardımcı olur ve diğer tarayıcı satıcılarına özellikleri desteklemenin ne kadar kritik olduğunu gösterir.
#LaunchHandler
hashtag'ini kullanarak @ChromiumDev'e tweet gönderin ve
bunu nerede ve nasıl kullandığınızı bize bildirin.
Faydalı bağlantılar
- Herkese açık açıklayıcı
- Taslak özellikleri
- Launch Handler API Demo (Başlangıç İşleyici API'si Demosu) | Launch Handler API Demo kaynağı
- Chromium izleme hatası
- ChromeStatus.com girişi
- Yanıp Sönen Bileşen:
Blink>AppManifest
- TAG İncelemesi
- Prototip Oluşturma Amacı