Kullanıcının cihazını etkin olarak kullanmadığı zamanları öğrenmek için Idle Detection API'yi kullanın.
Idle Detection API nedir?
Idle Algılama API'si, bir kullanıcı boşta kaldığında geliştiricileri bilgilendirir. Bu durum, klavyeyle etkileşim, fare, ekran, ekran koruyucunun etkinleştirilmesi, ekranın kilitlenmesi, veya farklı bir ekrana geçebilirsiniz. Geliştirici tarafından tanımlanan bir eşik, bildirimi tetikler.
Idle Detection API için önerilen kullanım alanları
Bu API'yi kullanabilecek sitelere örnek olarak şunlar verilebilir:
- Sohbet uygulamaları veya çevrimiçi sosyal ağ siteleri, kullanıcıya bu durumu bildirmek için bu API'yi kullanabilir. bu kullanıcının kişilerine şu anda erişilebilir.
- Herkese açık kiosk uygulamaları (ör. müzelerde) bu API'yi kullanarak "ana sayfaya" dönebilir. kiosk'u kontrol edin.
- Pahalı hesaplamalar gerektiren, grafik çizmek gibi uygulamalar, bu hesaplamaları, kullanıcının cihazıyla etkileşimde bulunduğu anlarla sınırlandırabilir.
Mevcut durum
Step | Durum |
---|---|
1. Açıklayıcı oluşturun | Tamamlandı |
2. İlk spesifikasyon taslağını oluşturun | Tamamlandı |
3. Geri bildirim toplama tasarımı yineleyin | Devam ediyor |
4. Kaynak denemesi | Tamamlandı |
5. Lansman | Chromium 94 |
Idle Detection API'yi kullanma
Özellik algılama
Idle Detection API'nin desteklenip desteklenmediğini kontrol etmek için şunu kullanın:
if ('IdleDetector' in window) {
// Idle Detector API supported
}
Boşta Algılama API'si kavramları
Idle Detection API, kullanıcı ile kullanıcı arasında belirli bir düzeyde etkileşim olduğunu kullanıcı aracısı (yani tarayıcı) ve kullanılan cihazın işletim sistemi. Bu, iki boyutta gösterilir:
- Kullanıcının boşta kalma durumu:
active
veyaidle
: Kullanıcının sahip olduğu veya olmadığı belirli bir süre boyunca kullanıcı aracısıyla etkileşimde bulunmuş olması gerekir. - Ekran boşta kalma durumu:
locked
veyaunlocked
: Sistemin, engelleyen bir etkin ekran kilidi (ör. ekran koruyucu) olduğundan kullanıcı aracısıyla etkileşimde bulunur.
active
öğesini idle
ile ayırt etmek için kullanıcı, kullanıcı aracısı ve
ve işletim sistemi. Ayrıca makul ölçüde genel bir eşik olmalıdır.
(bkz. Güvenlik ve İzinler).
Modelin belirli bir içerikle etkileşimi kasıtlı olarak resmen ayırmaması (yani, API'yi kullanan bir sekmedeki web sayfası), bir bütün olarak kullanıcı aracısı veya işletim sistemi; bu tanım kullanıcı aracısına bırakılır.
Idle Detection API'yi kullanma
Idle Detection API'yi kullanmanın ilk adımı:
('idle-detection'
) izninin verildiğinden emin olun.
İzin verilmezse şunları yapmanız gerekir:
IdleDetector.requestPermission()
aracılığıyla istekte bulunabilirsiniz.
Bu yöntemi çağırmak için kullanıcı hareketinin gerektiğini unutmayın.
// Make sure 'idle-detection' permission is granted.
const state = await IdleDetector.requestPermission();
if (state !== 'granted') {
// Need to request permission first.
return console.log('Idle detection permission not granted.');
}
İkinci adım, IdleDetector
öğesini örneklendirmektir.
Minimum threshold
,60.000 milisaniyedir (1 dakika).
Son olarak,
IdleDetector
öğesinin start()
yöntemi.
İstenen boşta kalma değeri threshold
olan bir nesneyi milisaniye cinsinden alır
ve isteğe bağlı bir signal
AbortSignal
parametresiyle boşta kalma algılamasını iptal edebilir.
try {
const controller = new AbortController();
const signal = controller.signal;
const idleDetector = new IdleDetector();
idleDetector.addEventListener('change', () => {
const userState = idleDetector.userState;
const screenState = idleDetector.screenState;
console.log(`Idle change: ${userState}, ${screenState}.`);
});
await idleDetector.start({
threshold: 60000,
signal,
});
console.log('IdleDetector is active.');
} catch (err) {
// Deal with initialization errors like permission denied,
// running outside of top-level frame, etc.
console.error(err.name, err.message);
}
Boşta kalma algılamasını
AbortController
abort()
yöntemidir.
controller.abort();
console.log('IdleDetector is stopped.');
Geliştirici Araçları desteği
Chromium 94'ten başlayarak, boşta kalmaksızın Geliştirici Araçları'nda boşta kalma etkinliklerini emüle edebilirsiniz. Geliştirici Araçları'nda Sensörler sekmesini açın ve Boşta Algılayıcı Durumunu Simüle Et'i bulun. Aşağıdaki videoda çeşitli seçenekleri görebilirsiniz.
Puppeteer desteği
Puppeteer 5.3.1 sürümünden itibaren, çeşitli boşta kalma durumları emülasyonu web uygulaması davranışının nasıl değiştiğini programlı bir şekilde test etmek için kullanılır.
Demo
Boşta Algılama API'sinin işleyiş şeklini silen Geçici Tuval demosu ile içerik 60 saniye boyunca herhangi bir işlem yapılmadığında. Bu projenin bir departmana dağıtıldığı çizimleri için harika bir dükkan.
Çoklu dolgu
Idle Detection API'nin bazı özellikleri çoklu doldurulabilir ve idle.ts gibi boşta kalma algılama kitaplıkları varsa Ancak şu yaklaşımlar web uygulamasının kendi içerik alanıyla sınırlıdır: Web uygulaması bağlamında çalışan kitaplık giriş etkinlikleri için yüksek düzeyde yoklama yapması veya görünürlük değişikliklerini dinlemesi gerekiyor. Daha kısıtlayıcı bir şekilde ise, kitaplıklar bugün kullanıcıların ne zaman boşta kaldığını söyleyemez içerik alanının dışında (ör. kullanıcı farklı bir sekmede olduğunda) veya bilgisayarından tamamen çıkış yapmış olabilir.
Güvenlik ve izinler
Chrome ekibi, Idle Detection API'yi temel ilkeleri kullanarak tasarlayıp uyguladı
Güçlü Web Platformu Özelliklerine Erişimi Kontrol Etme'de açıklandığı şekilde
dahil olmak üzere tüm bunları kapsar.
Bu API'nin kullanım özelliği
'idle-detection'
izni.
API'yi kullanmak için bir uygulamanın aynı zamanda
üst düzey güvenli içerik.
Kullanıcı denetimi ve gizlilik
Kötü amaçlı kişilerin yeni API'leri kötüye kullanmasını her zaman önlemek isteriz. Bağımsız gibi görünen web siteleri ancak aslında aynı tüzel kişi tarafından kontrol edilen cihazların, kullanıcıların boşta kalma bilgilerini farklı kaynaklardaki benzersiz kullanıcıları tanımlamak için veriler arasında ilişki kurun. Bu tür saldırıları azaltmak için Idle Detection API, bildirilen boşta kalma etkinliklerinin ayrıntı düzeyini sınırlandırır.
Geri bildirim
Chrome ekibi, Idle Detection API ile ilgili deneyimleriniz hakkında bilgi almak istiyor.
Bize API tasarımı hakkında bilgi verin
API'de beklediğiniz gibi çalışmayan bir şey mi var? Veya eksik yöntemler mi var? gereken özellikler veya özellikler neler olabilir? Güvenlik modeliyle ilgili bir sorunuz veya yorumunuz mu var? İlgili GitHub deposunda bir spesifikasyon sorunu bildirin, veya düşüncelerinizi mevcut bir soruna ekleyebilirsiniz.
Uygulamayla ilgili bir sorunu bildirin
Chrome'un uygulanmasıyla ilgili bir hata buldunuz mu? Yoksa uygulama, spesifikasyondan farklı mı?
new.crbug.com adresinden hata bildiriminde bulunun. Açıklamalarınızı mümkün oldukça detaylandırmaya çalışın.
basit yeniden oluşturma talimatlarını uygulayın ve Bileşenler kutusuna Blink>Input
yazın.
Glitch, hızlı ve kolay yeniden oluşturmalar paylaşmak için idealdir.
API'ye desteğinizi gösterin
Idle Detection API'yi kullanmayı planlıyor musunuz? Herkese açık desteğiniz Chrome ekibinin şunları yapmasına yardımcı olur: ve diğer tarayıcı tedarikçilerine söz konusu özellikleri desteklemenin ne kadar önemli olduğunu gösterir.
- Bu özelliği nasıl kullanmayı planladığınızı WICG Discourse ileti dizisinde paylaşın.
- Hashtag'i kullanarak @ChromiumDev hesabına tweet gönderin
#IdleDetection
ve nerede ve nasıl kullandığınızı bize bildirin.
Faydalı bağlantılar
- Herkese açık açıklayıcı
- Taslak spesifikasyon
- Boşta Algılama API'si Demosu | Boşta Algılama API'si Demo kaynağı
- Hata izleme
- ChromeStatus.com girişi
- Blink Bileşeni:
Blink>Input
Teşekkür
Boşta Algılama API'si Sam Goto tarafından uygulandı. Geliştirici Araçları desteği, Maksim Sadym tarafından eklendi. Joe Medley sayesinde, Kayce Basques ve Bu makaleyle ilgili yorumları için Reilly Grant'e teşekkür ederiz. Lokomotif resim, Fernando Hernandez tarafından Lansmanı kaldırın.