İşleyici API'sini Başlatma

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 bir LaunchParams nesnesi, dokümanın window.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 ve existing-client kullanır. Masaüstü cihazlar ise veri kaybını önlemek için birden fazla pencereyi destekler ve navigate-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.

  1. Musicr 2.0 uygulamasını yükleyin.
  2. 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).
  3. Sohbet uygulamanızdaki bağlantıyı tıklayın. Musicr 2.0'ın açılıp parçayı çaldığını göreceksiniz.
  4. 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.

Faydalı bağlantılar