İşleyici API'sini Başlatma

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.

Tarayıcı Desteği

  • 110
  • 110
  • x
  • x

Kaynak

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

  1. Musicr 2.0 uygulamasını bir ChromeOS cihaza yükleyin.
  2. 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).
  3. Sohbet uygulamanızdaki bağlantıyı tıklayın ve Musicr 2.0'ın parçayı nasıl açıp çaldığına dikkat edin.
  4. 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