İşleyici API'sini Başlatma

Uygulamanızın nasıl başlatıldığı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 öğesinde bir LaunchParams nesnesini sıraya koyar.

Mevcut durum

Adım Durum
1. Açıklayıcı oluşturun Tamamlandı
2. İlk spesifikasyon taslağını oluşturun Tamamlandı
3. Geri bildirim alma ve tasarım üzerinde yineleme Eksiksiz
4. Kaynak denemesi. Eksiksiz
5. Lansman Tamamlandı

Launch Handler API'yi kullanma

Tarayıcı desteği

İşleyici Başlat 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ı 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 gezinmenin gerekip gerekmediğini kontrol etmenize olanak tanır. Aşağıdaki örnekte, tüm lansmanları her zaman yeni bir istemciye yönlendiren örnek değerler içeren bir dosya gösterilmektedir.

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

Belirtilmemesi durumunda launch_handler, varsayılan olarak {"client_mode": "auto"} değerine ayarlanır. 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 tarama içeriğiyle en son etkileşimde bulunulan kullanıcı, lansmanın hedef URL'sine yönlendirilir.
    • 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 neyin en uygun olduğuna karar vermek kullanıcı aracısına bağlıdır. Örneğin, mobil cihazlar yalnızca tek 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 (dizisi) de kabul eder. Bunun amacı, mevcut uygulamalarla geriye dönük uyumluluğu bozmadan spesifikasyona yeni değerler eklenmesine olanak tanımaktır.

Örneğin, varsayımsal değer "focus-matching-url" eklendiğinde, 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 dosyasını kullanma

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

Launch Handler API'nin nasıl çalıştığını gösteren bir demoyu PWA Lansman İşleyici Demosu'nda görebilirsiniz. Launch Handler API'yi nasıl kullandığını öğrenmek için uygulamanın kaynak koduna göz atmayı unutmayın.

  1. Musicr 2.0 uygulamasını bir ChromeOS cihaza yükleyin.
  2. Kendinize https://launch-handler.glitch.me?track=https://example.com/music.mp3 biçimindeki bir sohbet uygulamasında bağlantı gönderin. (Bir ses dosyasına işaret eden URL'ler için https://example.com/music.mp3 öğesini ö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ıkladığınızda Musicr 2.0'ın ikinci bir örneğini almayacağınızı görürsünüz.

Geri bildirim

Chromium ekibi, Launch Handler API ile ilgili deneyimleriniz hakkında bilgi almak 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 ihtiyacınız olan yöntemler veya özellikler mi var? Güvenlik modeliyle ilgili sorunuz veya yorumunuz mu var? İlgili GitHub deposunda bir spesifikasyon sorunu bildirin veya mevcut bir soruna düşüncelerinizi ekleyin.

Uygulamayla ilgili bir sorunu bildirin

Chromium'un uygulanmasıyla ilgili bir hata buldunuz mu? Yoksa uygulama, spesifikasyondan farklı mı? new.crbug.com adresinde bir hata bildiriminde bulunun. Mümkün olduğunca çok ayrıntıyı ve yeniden oluşturma için basit talimatları eklediğinizden emin olun ve Bileşenler kutusuna Blink>AppManifest yazın. Glitch, hızlı ve kolay yeniden oluşturmalar paylaşmak için idealdir.

API'ye desteğinizi gösterin

Launch Handler API'yi kullanmayı planlıyor musunuz? Herkese açık desteğiniz, Chromium ekibinin özellikleri önceliklendirmesine yardımcı olur ve diğer tarayıcı tedarikçilerine bunları desteklemenin ne kadar kritik 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