Yayınlanma tarihi: 12 Mayıs 2026
Web uygulamalarını yüklemek için her zaman JavaScript gerekmiştir. beforeinstallprompt etkinliğini kullandığınızda yükleme akışı tamamen komut dosyasında yer alır. Yeni <install> öğesi bunu değiştirir: Sayfanıza tek bir HTML öğesi bırakırsınız ve tarayıcı, JavaScript gerektirmeden sizin için güvenilir bir yükleme düğmesi oluşturur.

Microsoft Edge ekibi, Chrome ekibiyle işbirliği yaparak Chromium'da <install> öğesini uyguladı. Bu özellik, 148 sürümünden itibaren Chrome veya Edge'de bir işaretin arkasında test etmeniz için ve 148 ile 153 sürümleri arasında her iki tarayıcıda da kullanabileceğiniz bir kaynak denemesi olarak kullanıma sunulmuştur.
Deneyin ve kendi origin denemesine sahip olan zorunlu Web Install API
(navigator.install()) ile nasıl karşılaştırıldığını öğrenin.
Sorun
Web uygulaması yükleme işlemi parçalıdır. Her tarayıcının kendi giriş noktaları vardır. Örneğin, adres çubuğu simgeleri, menü öğeleri ve istemler. Geliştiriciler, yükleme akışının ne zaman ve nasıl gösterileceği konusunda sınırlı kontrole sahiptir.
Yükleme işlemi geçmişte geçerli sayfayla sınırlı olduğundan, kullanıcıların sitenizden başka uygulamalar yüklemesine olanak tanıyan uygulama mağazası benzeri bir deneyim oluşturmak daha zordur.
<install> öğesi
Yeni <install> HTML öğesinin içeriği ve sunumu tarayıcı tarafından kontrol edilir. <geolocation> gibi diğer izin öğelerine benzer şekilde, tarayıcının düğme etiketinin metni, dili ve görünümü üzerindeki kontrolü, kullanıcının tıklamasını gerçek bir amaç sinyali olarak güvenilir kabul edebileceği anlamına gelir.
"Harika Uygulamayı Yükle" etiketli bir düğmeyi tıklayan kullanıcının, yükleme istemi göründüğünde şaşırması olası değildir.
Tarayıcı düğmeyi oluşturduğundan, minimum kodla güvenilir bir yükleme olanağı elde edersiniz ve JavaScript'te beforeinstallprompt törenini düzenlemeniz gerekmez.
Mevcut uygulamayı yükleyin
Geçerli sayfa, id alanı olan bir manifestoya bağlanıyorsa ihtiyacınız olan tek öğe şudur:
<install></install>
Tarayıcı, düğmeyi standartlaştırılmış metin ve simgelerle oluşturur. Kullanıcı düğmeyi tıkladığında tarayıcının normal yükleme akışı başlar.
Farklı bir uygulama yükleme
Mevcut sayfadan farklı bir kaynakta bulunan bir web uygulamasını yüklemek için installurl özelliğini kullanarak diğer web uygulamasına yönlendirin:
<install installurl="https://awesome-app.com/"></install>
https://awesome-app.com adresindeki sayfa, id alanını tanımlayan bir manifeste bağlanıyorsa yapmanız gereken tek şey budur.
id alanı yoksa hesaplanmış bir manifest id sağlamak için manifestid özelliğini kullanın:
<install installurl="https://awesome-app.com/"
manifestid="https://awesome-app.com/?source=pwa">
</install>
Hesaplanmış manifesti almak için id:
- Geliştirici Araçları'nı açın.
- Uygulama sekmesine gidin.
- Kimlik bölümünde, Hesaplanmış Uygulama Kimliği değerini kopyalayın.
Diğer kaynaklı uygulamaları yüklemek için <install> düğmesini kullanmak, kullanıcıların her biri kendi <install> düğmesine sahip birden fazla uygulamayı yüklemesine olanak tanıyan bir katalog sayfası oluşturabileceğiniz anlamına gelir.
Yedek içerik sağlama
Tarayıcı <install> öğesini desteklemiyorsa öğenin içine yerleştirdiğiniz HTML gösterilir:
<install installurl="https://awesome-app.com/">
<a href="https://awesome-app.com/">Launch Awesome App</a>
</install>
Algılama desteği
Yedek içerik kullanım alanınız için yeterli değilse ve <install> öğesini desteklemeyen tarayıcılarda farklı bir kullanıcı deneyimi uygulamayı tercih ediyorsanız desteği algılamak için JavaScript'i kullanın:
if ('HTMLInstallElement' in window) {
// The <install> element is supported.
}
Etkinlikleri işleme
<install> öğesi, başarı, kapatma ve doğrulama hataları için dinleyebileceğiniz etkinlikleri tetikler:
const button = document.querySelector('install');
button.addEventListener('promptaction', () => {
console.log('Installation succeeded');
});
button.addEventListener('promptdismiss', () => {
console.log('User dismissed the install prompt');
});
button.addEventListener('validationstatuschanged', (e) => {
if (e.target.invalidReason === 'install_data_invalid') {
console.error('Invalid install data:', e.target.invalidReason);
}
});
Hemen deneyin
<install> öğesini bugün denemek için iki seçeneğiniz vardır:
- Öğeyi yalnızca cihazınızda yerel olarak test edin.
- Kaynak denemesine kaydolarak öğeyi gerçek koşullarda kullanıcılarınızla birlikte test edin.
Yerel olarak test etme
Öğeyi kendi cihazınızda bugün test etmek için:
- Chrome veya Edge'in 148 ya da sonraki sürümlerini kullanın.
- Yeni sekmede
about://flags/#web-app-install-elementadresine gidin. - Web Uygulaması Yükleme Öğesi'ni Etkin olarak ayarlayın.
- Tarayıcıyı yeniden başlatın.
Kaynak denemesini kullanarak canlı sitenizde test etme
Kaynak denemesi, üretim sitenizdeki gerçek kullanıcıların özelliği önce işareti etkinleştirmeleri gerekmeden kullanmalarına olanak tanır.
<install>öğesi kaynak denemesi kaydı sayfasını açın.- Oturum açın.
- Kaydol'u tıklayın.
- Sitenizin kaynağını girin ve formun geri kalanını doldurun.
- Form gönderildikten sonra bir jeton dizesi alırsınız.
<meta>etiketini kullanarak jetonu sitenizin sayfalarına ekleyin:
<meta http-equiv="origin-trial" content="YOUR_TOKEN_HERE">
Alternatif olarak, jetonu HTTP yanıt başlığı olarak da gönderebilirsiniz:
Origin-Trial: YOUR_TOKEN_HERE
Bu kaynak denemesi, 148-153 sürümlerinde hem Chrome hem de Edge için kullanılabilir ve aynı jeton her iki tarayıcıda da çalışır. Deneme süreci hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın:
- Chrome için orijin denemelerini kullanmaya başlayın.
- Edge için kaynak denemelerini kullanarak deneysel API'leri ve özellikleri test edin.
İşleyiş şeklini görün
<install> Element Store
demosuna göz atın. Bu demo, <install> öğesini kullanarak birkaç örnek uygulama yüklemenize olanak tanıyan bir PWA kataloğudur.
Web Install API ile karşılaştırma
<install> öğesi, web'de uygulama yüklemelerini iyileştirme yöntemleri üzerinde yaptığımız denemelerden yalnızca biridir.
Daha önce, sitenizin aynı kaynaklı veya kaynaklar arası web uygulamalarının yüklenmesini de tetiklemesine olanak tanıyan zorunlu bir JavaScript API olan Web Install API (navigator.install()) ile ilgili bir deneme yapmıştık. Daha fazla bilgi için Web Install API test edilmeye hazır başlıklı makaleyi inceleyin.
Web Install API'nin de kendi kaynak denemesi vardır.
İki yaklaşımın karşılaştırması aşağıda verilmiştir:
öğesi |
navigator.install() API |
|
|---|---|---|
| Yaklaşım | Bildirime dayalı HTML | Zorunlu JavaScript |
| Kod gerekli | Tek bir HTML öğesi | navigator.install() işlevini çağırmak ve döndürülen sözü işlemek için JavaScript |
| Tarayıcı güveni | Yüksek: Tarayıcı, izin öğelerine benzer şekilde düğmenin içeriğini ve görünümünü kontrol eder. | Düşük: Güven işareti olarak kullanıcı etkinleştirmesi (tıklama, dokunma) gerektirir. |
| Kaynaklar arası yükleme | Evet, installurl ile |
Evet, navigator.install() işlevine bir URL ileterek. |
| Özelleştirme | Minimal: Tarayıcı, düğmenin nasıl görüneceğine karar verir. | Tam: Kendi kullanıcı arayüzünüzü tasarlarsınız ve API'yi herhangi bir etkileşimden çağırırsınız. |
| Yedek | Yerleşik: Öğe desteklenmiyorsa çocuk içeriği oluşturulur. | Kendi özellik algılama ve alternatif mantığınızı yazarsınız. |
| İdeal kullanım alanları | Minimum düzeyde kod içeren, kolayca eklenebilen yükleme düğmeleri; tarayıcı tarafından güvenilen kullanıcı arayüzünün tercih edildiği senaryolar | Özel yükleme akışları, dinamik katalog kullanıcı arayüzleri, mevcut JavaScript ağırlıklı arayüzlere entegrasyon |
Düşüncelerinizi bizimle paylaşın
Her iki yaklaşımla ilgili geri bildirimlerinizi bekliyoruz. İhtiyaçlarınıza bağlı olarak <install> öğesi, navigator.install() API'si veya her ikisi için de destek ekleyebiliriz.
<install> öğesiyle ilgili geri bildirim paylaşmak için bu öneriye özel WICG deposunda sorun bildirin.
navigator.install() API'si hakkında geri bildirim paylaşmak için Geliştirici Geri Bildirimi: navigator.install ve <install>
element
sorununa yorum ekleyin.