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
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 birLaunchParams
nesnesi: başlangıç URL'si, dokümanınwindow.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 veexisting-client
kullanır. Masaüstü cihazlar ise birden fazla pencereyi destekler ve veri kaybını önlemek içinnavigate-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.
- Musicr 2.0 uygulamasını yükleyin.
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çinhttps://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.- Sohbet uygulamanızdaki bağlantıyı tıklayın ve Musicr 2.0'ın parçayı nasıl açıp çaldığına dikkat edin.
- 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.