Cihaz özellikleri
Bir Sayfada Ekran Görüntülerini Engelleme
Uygulamanızdaki bir sayfanın ekran görüntülerini, ekran kaydını ve son kullanılanlar önizlemesini kapatmasına izin verin - ve kullanıcı ayrıldığında geri verin
1Bu ne işe yarar#
Sayfanızdan gelen tek bir satır, kullanıcının baktığı ekran için Android'in ekran yakalama engelini açar:
- ekran görüntüleri başarısız olur (kullanıcı Android'in "ekran görüntüsü alınamıyor" mesajını görür)
- ekran kaydı ve yayınlama (cast) siyah bir kare gösterir
- son kullanılanlar ekranındaki uygulama önizlemesi gizlenir
Yapamadığı şey - ve Android'de hiçbir şeyin yapamadığı şey - birinin ekranı başka bir telefonla fotoğraflamasını engellemektir. Buna ihtiyacınız varsa, bir bayrak değil, bir filigran gerekir.
const b = window.WebToApk || null;
// On the sensitive screen:
b?.setSecureScreen(true);
// Leaving it early (a modal closing, a tab switch inside one page):
b?.setSecureScreen(false);
// Current state:
const locked = b?.isSecureScreen();2Tüm uygulamayı değil, tek bir sayfayı koruyun#
Koruma, onu isteyen sayfaya aittir. Uygulama başka bir yere gittiği anda AppMint korumayı kaldırır - yeni bir sayfa, bir pushState rotası, bir #hash rotası - böylece ekstre ekranınız korunurken uygulamanın geri kalanında ekran görüntüleri normal şekilde alınabilir.
Bu aynı zamanda bir sayfanın yeniden yüklendikten sonra tekrar istemesi gerektiği anlamına gelir: yeni bir belge henüz hiçbir şey istememiştir ve bir önceki belgenin cevabını devralmak, uygulamaların kimsenin korumayı düşünmediği ekranlarda kilitlenmesinin nedenidir.
3Tek sayfalık bir uygulamada#
Tek bir sayfa içindeki rota değişiklikleri korumayı otomatik olarak kaldırır; bu yüzden olağan yöntem, korunan görünüm yüklendiğinde korumayı istemek ve gerisini gezinmeye bırakmaktır.
function showStatement() {
render(statementView);
window.WebToApk?.setSecureScreen(true);
}
// Nothing to undo on the way out — moving to another route
// releases it. Call setSecureScreen(false) yourself only when
// you hide the sensitive content WITHOUT navigating.4Bunun için zamanlayıcı kullanmayın#
Yaygın bir fikir, korumayı bir aralıkla, örneğin her saniye yeniden istemek ve sayfa istemeyi bırakınca sona ermesine izin vermektir. Bu işe yaramaz ve nedenini bilmeye değer: kullanıcı ekran görüntüsü tuşlarına bastığında Android uygulamanıza danışmaz. Bayrağın pencerede zaten açık olması gerekir. Sayfanızın meşgul olduğu, arka planda kısıtlandığı veya zamanlayıcı tikleri arasında kaldığı her saniye, ekran görüntüsünün başarılı olduğu bir saniyedir.
Hassas içerik göründüğünde bir kez isteyin. Kullanıcı ayrıldığında AppMint korumayı kaldırır.