Uygulamanızın nasıl başlatılacağını kontrol edin.
Lansman işleyici API'si, uygulamanızın nasıl başlatılacağını (ör. mevcut bir pencerenin mi yoksa yeni bir pencerenin mi kullanılacağı ve seçilen pencerenin lansman URL'sine yönlendirilip yönlendirilmeyeceği) kontrol etmenize olanak tanır. 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 toplayın ve tasarımda iterasyon yapın | 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
: Belirtilen tüketici tarafından işlenene kadar bekler.
launch_handler
manifest üyesi
Uygulamanızın başlatma davranışını açık bir şekilde belirtmek için manifest dosyanıza launch_handler
manifest üyesini 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 lansmanları her zaman yeni bir istemciye yönlendirecek ö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
: Lansman işlemini gerçekleştirmek için bir web uygulaması penceresinde en son etkileşimde bulunulan tarama bağlamı seçilir.targetURL
özelliği lansman URL'sine ayarlanmış yeni birLaunchParams
nesnesi, dokümanınwindow.launchQueue
özelliğine eklenir.auto
: Platform için en uygun yönteme 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
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, 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 Başlatıcı Handler Demo'da Başlatıcı Handler API'nin 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.
- 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. (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
).- Chat 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.
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 ihtiyaç duyduğunuz yöntemler veya özellikler eksik mi? 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 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'yi destekleme
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.