Uygulamanızın nasıl başlatılacağını kontrol edin.
Launch Handler API, uygulamanızın nasıl başlatılacağını kontrol etmenize olanak tanır. Örneğin, mevcut bir pencere mi yoksa yeni bir pencere mi kullanılacağını ve seçilen pencerenin başlatma URL'sine gidip gitmeyeceğini kontrol edebilirsiniz. File Handing API'de olduğu gibi, bu API de başlatılan sayfanın window.launchQueue
öğesine bir LaunchParams
nesnesi ekler.
Mevcut durum
Step | Durum |
---|---|
1. Açıklayıcı oluşturma | Tamamlandı |
2. Spesifikasyonun ilk taslağını oluşturma | Tamamlandı |
3. Geri bildirim toplama ve tasarım üzerinde yineleme yapma | Eksiksiz |
4. Kaynak denemesi. | Eksiksiz |
5. Lansman | Tamamlandı |
Launch Handler API'yi kullanma
Tarayıcı desteği
Arayüzler
Launch Handler API, iki yeni arayüz tanımlar.
LaunchParams
: Tüketici tarafından işlenecek targetURL
öğesini içeren bir nesne. LaunchQueue
: Belirtilen tüketici tarafından işlenene kadar başlatmaları sıraya alır.
launch_handler
manifest üyesi
Uygulamanızın başlatma davranışını bildirimli olarak belirtmek için manifest dosyanıza launch_handler
manifest üyesini ekleyin. client_mode
adlı bir alt alanı vardır. Yeni veya mevcut bir istemcinin başlatılıp başlatılmayacağını ve bu istemcide gezinilip gezinilmeyeceğini kontrol etmenizi sağlar. Aşağıdaki örnekte, tüm başlatma işlemlerini her zaman yeni bir istemciye yönlendirecek örnek değerlere sahip bir dosya gösterilmektedir.
{ "launch_handler": { "client_mode": "navigate-new" } }
Belirtilmemişse 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 bir web uygulaması penceresinde yeni bir göz atma bağlamı oluşturulur.navigate-existing
: Bir web uygulaması penceresinde en son etkileşimde bulunulan göz atma bağlamında, başlatmanın hedef URL'sine gidilir.focus-existing
: Başlatma işlemini gerçekleştirmek için bir web uygulaması penceresinde en son etkileşimde bulunulan göz atma bağlamı seçilir.targetURL
özelliği lansman URL'sine ayarlanmış yeni birLaunchParams
nesnesi, dokümanınwindow.launchQueue
özelliğinde sıraya alınır.auto
: Platform için en iyi olanı belirlemek kullanıcı aracısının sorumluluğundadır. Örneğin, mobil cihazlar yalnızca tek istemciyi destekler veexisting-client
kullanır. Masaüstü cihazlar ise veri kaybını önlemek için birden fazla pencereyi destekler venavigate-new
kullanır.
client_mode
özelliği, değerlerin listesini (dizi) de kabul eder. Bu durumda, ilk geçerli değer kullanılır. Bu, mevcut uygulamalarla geriye dönük uyumluluğu bozmadan spesifikasyona yeni değerler eklenmesine olanak tanımak içindir.
Örneğin, "focus-matching-url"
değerinin eklendiği varsayılırsa siteler, "focus-matching-url"
değerini 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 kullanma
Aşağıdaki kodda extractSongID()
işlevi, başlatma sırasında iletilen URL'den songID
değerini çıkarır. Bu, müzik çalar PWA'sında ş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 işleyiş şeklini PWA Launch Handler Demo'da görebilirsiniz. Launch Handler API'nin nasıl kullanıldığını görmek için uygulamanın kaynak kodunu inceleyin.
- Musicr 2.0 uygulamasını yükleyin.
- Kendinize bir bağlantı gönderin. Bağlantı,
https://mdn.github.io/dom-examples/launch-handler/?track=https://example.com/music.mp3
biçiminde bir sohbet uygulamasında olmalıdır. (https://example.com/music.mp3
değerini, ses dosyasına yönlendiren herhangi bir URL için özelleştirebilirsiniz. Örneğin,https://mdn.github.io/dom-examples/launch-handler/?track=https://huggingface.co/spaces/VIDraft/PHI4-Multimodal/resolve/main/examples/harvard.wav
). - Sohbet uygulamanızdaki bağlantıyı tıklayın. Musicr 2.0'ın açılıp parçayı çaldığını göreceksiniz.
- Sohbet uygulamanızdaki bağlantıyı tekrar tıklayın. Musicr 2.0'ın ikinci bir örneğini almayacağınızı fark edeceksiniz.
Geri bildirim
Chromium ekibi, Launch Handler API ile ilgili deneyimlerinizi öğrenmek istiyor.
API tasarımı hakkında bilgi verin.
API'nin beklentilerinizi karşılamayan bir yönü var mı? Yoksa fikrinizi uygulamak için eksik yöntemler veya özellikler mi var? Güvenlik modeliyle ilgili sorunuz veya yorumunuz mu var? İlgili GitHub deposunda bir spesifikasyon sorunu bildirin veya düşüncelerinizi mevcut bir soruna ekleyin.
Uygulamayla ilgili sorun bildirme
Chromium'un uygulanmasıyla ilgili bir hata mı buldunuz? Yoksa uygulama, spesifikasyondan farklı mı? new.crbug.com adresinden hata bildirin. Mümkün olduğunca fazla ayrıntı ve hatanın nasıl yeniden oluşturulacağına dair talimatlar eklediğinizden emin olun. Ayrıca Components (Bileşenler) kutusuna Blink>AppManifest
girin.
API'ye desteğinizi gösterme
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 bu özellikleri desteklemenin ne kadar önemli olduğunu gösterir.
#LaunchHandler
hashtag'ini kullanarak @ChromiumDev hesabına tweet gönderin ve nerede, nasıl kullandığınızı bize bildirin.