İşleyici API'sini Başlatma

Uygulamanızın nasıl başlatılacağı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 alanına 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 alma ve tasarım üzerinde yineleme Tamamlandı
4. Kaynak denemesi. Tamamlandı
5. Lansman Tamamlandı

Launch Handler API'yi kullanma

Tarayıcı desteği

Tarayıcı desteği

  • Chrome: 110.
  • Edge: 110.
  • Firefox: Desteklenmez.
  • Safari: Desteklenmez.

Kaynak

Arayüzler

Launch Handler API'si iki yeni arayüz tanımlar.

LaunchParams : Tüketici tarafından kullanılacak 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 gezinilip gezinilmeyeceğini kontrol etmenize olanak tanır. Aşağıdaki örnekte, tüm başlatmaları her zaman yeni bir istemciye yönlendiren örnek değerler içeren 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: 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 en son etkileşim kurulan tarama bağlamına, başlatmanın hedef URL'sine gidilir.
    • 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 bir LaunchParams nesnesi, dokümanın window.launchQueue öğesinde sıraya alınacak.
    • auto: Platform için en uygun davranışa karar vermek kullanıcı aracısına bağlıdır. Örneğin, mobil cihazlar yalnızca tek istemciyi 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 mülkü, ilk geçerli değerin kullanılacağı bir değer listesi (dizi) de kabul eder. Bu, mevcut uygulamalarla geriye dönük uyumluluğu bozmadan spesifikasyona yeni değerlerin eklenmesine olanak tanı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"] değerini belirtir.

window.launchQueue adresini kullan

Aşağıdaki kodda extractSongID() işlevi, başlatma sırasında iletilen URL'den bir songID çıkarır. Bu, müzik çalma uygulaması web uygulaması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

PWA Lansman İşleyici Demo'sunda Lansman İşleyici API'sinin kullanıma yönelik bir demosunu görebilirsiniz. Launch Handler API'yi nasıl kullandığını görmek için uygulamanın kaynak koduna göz atın.

  1. Musicr 2.0 uygulamasını yükleyin.
  2. https://launch-handler.glitch.me?track=https://example.com/music.mp3 biçiminde bir sohbet uygulamasında kendinize bir bağlantı gönderin. (https://example.com/music.mp3'yi, ses dosyasını 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 bakın.
  4. Sohbet uygulamanızdaki bağlantıyı tekrar tıklayın. Musicr 2.0'ın ikinci bir örneğini almazsınız.

Geri bildirim

Chromium ekibi, Launch Handler API ile ilgili deneyimlerinizi öğrenmek istiyor.

API tasarımı hakkında bilgi verin

API ile ilgili olarak beklediğiniz gibi çalışmayan bir şey var mı? 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 spesifikasyon sorunu oluşturun veya mevcut bir soruna düşüncelerinizi ekleyin.

Uygulamayla ilgili sorunları bildirme

Chromium'un uygulamasında bir hata mı buldunuz? Yoksa uygulama, spesifikasyondan farklı mı? new.crbug.com adresinde bir hata bildiriminde bulunun. Mümkün olduğunca çok ayrıntı ile yeniden oluşturma talimatlarını eklediğinizden emin olun ve Bileşenler kutusuna Blink>AppManifest yazın. Glitch, hızlı yeniden oluşturma işlemlerini paylaşmak için mükemmel bir araçtır.

API'ye desteğinizi 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ı tedarikçi firmalarına bu özellikleri desteklemenin ne kadar önemli 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.

Faydalı bağlantılar