İşleyici API'sini Başlatma

Uygulamanızın nasıl başlatıldığını kontrol edin.

Launch Handler API'si, uygulamanızın başlatılma şeklini (örneğin, mevcut veya yeni bir pencereden ve seçilen pencerenin başlatma URL'sine yönlendirilip yönlendirilmediğini seçebilirsiniz. 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. İlk spesifikasyon taslağını oluşturun Tamamlandı
3. Geri bildirim toplama tasarımı yineleyin 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 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 ekleyin 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 örnek tüm başlatma işlemleri için her zaman yeni bir gerekir.

{
  "launch_handler": {
    "client_mode": "navigate-new"
  }
}

Belirtilmezse launch_handler varsayılan olarak {"client_mode": "auto"} olur. Şu öğe için izin verilen değerler: alt alanları ş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ında tarama içeriğiyle en son etkileşime geçen kullanıcı penceresinde lansmanın hedef URL'sine gidilir.
    • focus-existing: Lansman işlemini gerçekleştirmek için bir web uygulaması penceresinde en son etkileşim kurulan tarama bağlamı seçilir. targetURL özelliği şuna ayarlanmış yeni bir LaunchParams nesnesi: başlangıç URL'si, dokümanın window.launchQueue'sinde sıraya alınacak.
    • auto: Platform için neyin en uygun olduğuna 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 özelliği, ilk geçerli değerin şöyle olacağı bir değer listesini (dizisi) de kabul eder: kullanılır. Bu, geriye dönük uyumluluğu bozmadan spesifikasyona yeni değerler eklenmesine olanak tanır. iyi bir örnektir.

Örneğin, varsayımsal "focus-matching-url" değeri 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'yi kullanma

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. Şu bölüme mutlaka göz atın: kaynak kodunu kullanarak Handler API'yi başlatı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. ( Bir ses dosyasına işaret eden herhangi bir URL için https://example.com/music.mp3; örneğin, https://launch-handler.glitch.me?track=https://cdn.glitch.me/3e952c9c-4d6d-4de4-9873-23cf976b422e%2Ffile_example_MP3_700KB.mp3?v=1638795977190) tıklayın.
  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. Musicr 2.0'ın ikinci bir örneğini almazsınız.

Geri bildirim

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

Bize API tasarımı hakkında bilgi verin

API'de beklediğiniz gibi çalışmayan bir şeyler mi var? Yoksa fikrinizi uygulamak için ihtiyaç duyduğunuz yöntemler veya özellikler eksik mi? Menkul kıymetle ilgili bir sorunuz veya yorumunuz varsa modeli nedir? İlgili GitHub deposunda spesifikasyon sorunu oluşturun veya mevcut bir soruna düşüncelerinizi ekleyin.

Uygulamayla ilgili sorunları bildirme

Chromium'un uygulanmasıyla ilgili bir hata buldunuz mu? Yoksa uygulama, spesifikasyondan farklı mı? new.crbug.com adresinden hata kaydı oluşturun. Mümkün olduğunca fazla ayrıntı ekleyin, hatayı yeniden oluşturma talimatlarını belirtin 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 hesabına tweet gönderin ve bu özelliği nerede ve nasıl kullandığınızı bize bildirin.

Faydalı bağlantılar