Yerel uygulama yükleme istemi, kullanıcıların yerel uygulamanızı tarayıcıdan çıkmadan ve rahatsız edici bir geçiş reklamı göstermeden doğrudan uygulama mağazasından cihazlarına hızlı ve sorunsuz bir şekilde yüklemelerine olanak tanır.
Ölçütler nelerdir?
Kullanıcıya yerel uygulama yükleme istemini göstermek için sitenizin aşağıdaki ölçütleri karşılaması gerekir:
- Web uygulaması veya cihazda yüklü olan yerel uygulama.
- Aşağıdakileri içeren bir Web Uygulama Manifesti içerir:
short_name
name
(banner isteminde kullanılır)icons
192 piksel ve 512 piksel sürümleri dahilprefer_related_applications
değeri:true
- Uygulamayla ilgili bilgi içeren
related_applications
nesne
- HTTPS üzerinden sunulur.
Bu ölçütleri karşıladığınızda bir beforeinstallprompt
etkinliği tetiklenir. Kullanıcıdan yerel uygulamanızı yüklemesini istemek için bu özelliği kullanabilirsiniz.
Zorunlu manifest özellikleri
Kullanıcıdan yerel uygulamanızı yüklemesini istemek için web uygulaması manifest dosyanıza prefer_related_applications
ve related_applications
olmak üzere iki özellik eklemeniz gerekir.
"prefer_related_applications": true,
"related_applications": [
{
"platform": "play",
"id": "com.google.samples.apps.iosched"
}
]
prefer_related_applications
prefer_related_applications
özelliği, tarayıcıya web uygulaması yerine yerel uygulamanızı kullanarak tarayıcıya istem girmesini bildirir. Bu değeri ayarlamadan (veya false
) bırakırsanız tarayıcı kullanıcıdan bunun yerine web uygulamasını yüklemesini ister.
related_applications
related_applications
, tarayıcıya tercih ettiğiniz yerel uygulama hakkında bilgi veren nesnelerin listesini içeren bir dizidir. Her nesne bir platform
ve bir id
özelliği içermelidir. Burada platform
, play
değerini, id
ise Play Store uygulama kimliğinizi ifade eder.
Yükleme istemini göster
Yükleme iletişim kutusunu görüntülemek için şunları yapmanız gerekir:
beforeinstallprompt
etkinliğini dinleyin.- Yerleşik uygulamanızın, kullanıcı hareketi etkinliği oluşturacak bir düğme veya başka bir öğeyle yüklenebileceğini kullanıcıya bildirin.
- Kayıtlı
beforeinstallprompt
etkinliğindeprompt()
işlevini çağırarak istemini gösterin.
beforeinstallprompt
için dinle
Ölçütler karşılanırsa Chrome bir beforeinstallprompt
etkinliği tetikler. Bu düğmeyi kullanarak uygulamanızın yüklenebileceğini belirtebilir ve ardından kullanıcıdan uygulamayı yüklemesini isteyebilirsiniz.
beforeinstallprompt
etkinliği tetiklendiğinde etkinliğe referans kaydedin ve kullanıcı arayüzünüzü, kullanıcının uygulamanızı yükleyebileceğini belirtecek şekilde güncelleyin.
let deferredPrompt;
window.addEventListener('beforeinstallprompt', (e) => {
// Prevent Chrome 67 and earlier from automatically showing the prompt
e.preventDefault();
// Stash the event so it can be triggered later.
deferredPrompt = e;
});
Kullanıcıya uygulamanızın yüklenebileceğini bildirin
Kullanıcıya uygulamanızın yüklenebilir olduğunu bildirmenin en iyi yolu, kullanıcı arayüzünüze bir düğme veya başka bir öğe eklemektir. Tam sayfa geçiş reklamı veya can sıkıcı ya da dikkat dağıtıcı olabilecek başka öğeler göstermeyin.
window.addEventListener('beforeinstallprompt', (e) => {
// Prevent Chrome 67 and earlier from automatically showing the prompt
e.preventDefault();
// Stash the event so it can be triggered later.
deferredPrompt = e;
// Update UI notify the user they can add to home screen
btnAdd.style.display = 'block';
});
İstemi göster
Yükleme istemini göstermek için kullanıcı hareketi içinden kayıtlı etkinlikte prompt()
işlevini çağırın. Kullanıcıdan uygulamanızı ana ekranına eklemesini isteyen bir modal iletişim kutusu gösterilir.
Ardından, userChoice
mülkü tarafından verilen sözü dinleyin. Sözleşme, istem gösterildikten ve kullanıcı yanıt verdikten sonra outcome
mülkü içeren bir nesne döndürür.
btnAdd.addEventListener('click', (e) => {
// hide our user interface that shows our A2HS button
btnAdd.style.display = 'none';
// Show the prompt
deferredPrompt.prompt();
// Wait for the user to respond to the prompt
deferredPrompt.userChoice
.then((choiceResult) => {
if (choiceResult.outcome === 'accepted') {
console.log('User accepted the A2HS prompt');
} else {
console.log('User dismissed the A2HS prompt');
}
deferredPrompt = null;
});
});
Ertelenen etkinlikte prompt()
işlevini yalnızca bir kez çağırabilirsiniz. Kullanıcı etkinliği kapatırsa sonraki sayfada gezinme sırasında beforeinstallprompt
etkinliğinin tetiklenmesini beklemeniz gerekir.
İçerik güvenliği politikasını kullanırken dikkat edilmesi gereken özel noktalar
Sitenizde kısıtlayıcı bir İçerik Güvenliği Politikası varsa Chrome'un uygulamanızla ilişkili simgeyi Play Store'dan indirebilmesi için img-src
yönergesine *.googleusercontent.com
eklediğinizden emin olun.
Bazı durumlarda *.googleusercontent.com
, istenenden daha ayrıntılı olabilir. Uygulama simgesinin URL'sini belirlemek için bir Android cihazda uzaktan hata ayıklama yaparak bu alanı daraltabilirsiniz.