आइडल डिटेक्शन एपीआई की मदद से, इनऐक्टिव उपयोगकर्ताओं का पता लगाएं

इस एपीआई का इस्तेमाल करके, यह पता लगाया जा सकता है कि लोग अपने डिवाइस का इस्तेमाल कब नहीं कर रहे होते.

कुछ समय से इस्तेमाल में न होने पर पता लगाने वाला एपीआई क्या है?

जब कोई उपयोगकर्ता कुछ समय से डिवाइस का इस्तेमाल नहीं करता है, तो कुछ समय से इस्तेमाल में न होने पर उसका पता लगाने वाला एपीआई, डेवलपर को इसकी सूचना देता है. इससे यह पता चलता है कि कोई उपयोगकर्ता कुछ समय के लिए उपलब्ध नहीं है कीबोर्ड, माउस, स्क्रीन के साथ इंटरैक्शन, स्क्रीन सेवर की सुविधा चालू करना, स्क्रीन लॉक करना, या किसी दूसरी स्क्रीन पर जाएं. डेवलपर का तय किया गया थ्रेशोल्ड, सूचना ट्रिगर करता है.

कुछ समय से इस्तेमाल में न होने वाले एपीआई के लिए, इस्तेमाल के सुझाए गए उदाहरण

उन साइटों के उदाहरण जो इस एपीआई का इस्तेमाल कर सकते हैं:

  • चैट ऐप्लिकेशन या ऑनलाइन सोशल नेटवर्किंग साइटें इस एपीआई का इस्तेमाल, उपयोगकर्ता को यह बताने के लिए कर सकती हैं कि क्या फ़िलहाल, उनके संपर्कों तक पहुंचा जा सकता है.
  • सार्वजनिक तौर पर उपलब्ध कीऑस्क ऐप्लिकेशन, "होम" पर वापस जाने के लिए इस एपीआई का इस्तेमाल कर सकते हैं. उदाहरण के लिए, म्यूज़ियम में मौजूद कीऑस्क ऐप्लिकेशन देखें कि क्या अब कोई भी कीऑस्क से इंटरैक्ट नहीं करता है.
  • ऐसे ऐप्लिकेशन जिनमें महंगी कैलकुलेशन करने की ज़रूरत होती है, जैसे कि चार्ट बनाने के लिए, की मदद से कैलकुलेशन का यह तरीका इस्तेमाल किया जा सकता है.

मौजूदा स्थिति

चरण स्थिति
1. जानकारी देने वाला वीडियो बनाएं पूरा हुआ
2. स्पेसिफ़िकेशन का शुरुआती ड्राफ़्ट बनाएं पूरा हुआ
3. लोगों के सुझाव जानें और डिज़ाइन को दोहराएं प्रोसेस जारी है
4. ऑरिजिन ट्रायल पूरा हुआ
5. लॉन्च करें Chromium 94

कुछ समय से इस्तेमाल में न होने का पता लगाने वाले एपीआई को इस्तेमाल करने का तरीका

सुविधा की पहचान

यह देखने के लिए कि आइडल डिटेक्शन एपीआई काम करता है या नहीं, इसका इस्तेमाल करें:

if ('IdleDetector' in window) {
  // Idle Detector API supported
}

कुछ समय से इस्तेमाल में न होने वाले एपीआई के सिद्धांत

आइडल डिटेक्शन एपीआई यह मानता है कि उपयोगकर्ता के बीच कुछ लेवल है, उपयोगकर्ता एजेंट (यानी, ब्राउज़र) और इस्तेमाल किए जा रहे डिवाइस का ऑपरेटिंग सिस्टम. इसे दो डाइमेंशन में दिखाया गया है:

  • उपयोगकर्ता के कुछ समय से इस्तेमाल में न होने की स्थिति: active या idle: उपयोगकर्ता के पास है या नहीं है कुछ समय तक उपयोगकर्ता एजेंट से इंटरैक्ट किया.
  • स्क्रीन बंद होने की स्थिति: locked या unlocked: सिस्टम में स्क्रीन लॉक (जैसे कि स्क्रीन सेवर) की सुविधा चालू है, जो उपयोगकर्ता एजेंट के साथ इंटरैक्शन करते हैं.

active को idle से अलग करने के लिए ऐसे अनुभवों की ज़रूरत होती है जो उपयोगकर्ता, उपयोगकर्ता एजेंट, के साथ काम करता है. यह एक सामान्य सीमा भी होनी चाहिए (सुरक्षा और अनुमतियां देखें).

मॉडल, जान-बूझकर किसी खास कॉन्टेंट के साथ होने वाले इंटरैक्शन के बीच औपचारिक रूप से फ़र्क़ नहीं करता (इसका मतलब है कि एपीआई का इस्तेमाल करने वाले टैब में मौजूद वेबपेज), पूरी तरह से उपयोगकर्ता एजेंट या ऑपरेटिंग सिस्टम; यह परिभाषा उपयोगकर्ता एजेंट के लिए है.

कुछ समय से इस्तेमाल में न होने का पता लगाने वाले एपीआई का इस्तेमाल करना

कुछ समय से इस्तेमाल में न होने वाले टूल का पता लगाने के लिए, एपीआई को इस तरह से इस्तेमाल किया जाता है: यह पक्का करने के लिए कि 'idle-detection' की अनुमति दी गई है. अगर अनुमति नहीं दी गई है, तो आपको IdleDetector.requestPermission() के ज़रिए इसका अनुरोध करें. ध्यान दें कि इस तरीके को कॉल करने के लिए, उपयोगकर्ता के जेस्चर की ज़रूरत होती है.

// 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.');
}

इसके बाद, दूसरा चरण IdleDetector को इंस्टैंशिएट करना होता है. कम से कम threshold 60,000 मिलीसेकंड (1 मिनट) है. अंत में आप IdleDetector का start() तरीका. यह एक ऐसे ऑब्जेक्ट का डेटा इकट्ठा करता है जिसकी ज़रूरत कुछ समय से इस्तेमाल में न होने पर threshold मिलीसेकंड में हो और एक वैकल्पिक signal AbortSignal पैरामीटर के तौर पर, डिवाइस इस्तेमाल में न होने की पहचान करने की सुविधा को रद्द किया जा सकता है.

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);
}

आप AbortController की abort() तरीका.

controller.abort();
console.log('IdleDetector is stopped.');

DevTools सहायता

Chromium 94 की शुरुआत में, आपके पास DevTools में उन इवेंट को एम्युलेट करने का विकल्प है जो डिवाइस इस्तेमाल में न होने पर भी काम नहीं करते. DevTools में, सेंसर टैब खोलें और कुछ समय से इस्तेमाल में न होने की पहचान करने वाले टूल की स्थिति खोजें. नीचे दिए गए वीडियो में, अलग-अलग विकल्प देखे जा सकते हैं.

DevTools में कुछ समय से इस्तेमाल न होने वाले डिटेक्टर की स्थिति की नकल करना.

कठपुतली पालने की सुविधा

Puppeteer के वर्शन 5.3.1 के बाद से, ये काम किए जा सकते हैं इस्तेमाल न होने वाली अलग-अलग स्थितियों को एम्युलेट करें का इस्तेमाल करके अपने वेब ऐप्लिकेशन के काम करने के तरीके में बदलाव किया जा सकता है.

डेमो

Ephemeral Canvas डेमो के साथ, इस्तेमाल में न होने पर इस्तेमाल करने वाले टूल को इस्तेमाल करते हुए देखा जा सकता है. यह एपीआई, 60 सेकंड तक निष्क्रिय रहने के बाद सामग्री. आप कल्पना कर सकते हैं कि इसे किसी डिपार्टमेंट में डिप्लॉय किया जा रहा है पर डूडल बनाने की सुविधा देता है.

कुछ समय के लिए कैनवस का डेमो

पॉलीफ़िलिंग

कुछ समय से इस्तेमाल में न होने वाले डिटेक्शन एपीआई के कुछ पहलुओं को पॉलीफ़िल किया जा सकता है और आइडल डिटेक्शन लाइब्रेरी, जैसे कि idle.ts मौजूद हैं, हालांकि, ये तरीके किसी वेब ऐप्लिकेशन के कॉन्टेंट एरिया तक सीमित हैं: वेब ऐप्लिकेशन के कॉन्टेक्स्ट में चल रही लाइब्रेरी इवेंट को इनपुट करने या 'किसको दिखे' सेटिंग में होने वाले बदलावों के लिए महंगे पोल की ज़रूरत पड़ सकती है. हालांकि, ज़्यादा पाबंदियों के साथ, अगर कोई उपयोगकर्ता कुछ समय से इस्तेमाल में नहीं है, तो लाइब्रेरी यह नहीं बता सकती कि उसे कैसे इस्तेमाल किया जा सकता है कॉन्टेंट एरिया के बाहर (उदाहरण के लिए, जब कोई उपयोगकर्ता किसी दूसरे टैब पर हो) या अपने कंप्यूटर से पूरी तरह लॉग आउट हो जाता है.

सुरक्षा और अनुमतियां

Chrome टीम ने अपने मुख्य सिद्धांतों का पालन करते हुए, आइडल डिटेक्शन एपीआई को डिज़ाइन और लागू किया है सशक्त वेब प्लैटफ़ॉर्म सुविधाओं का ऐक्सेस कंट्रोल करना में बताया गया है, इसमें उपयोगकर्ता के कंट्रोल, पारदर्शिता, और एर्गोनॉमिक्स का इस्तेमाल करना शामिल है. इस एपीआई का इस्तेमाल करने की क्षमता को 'idle-detection' की अनुमति. एपीआई का इस्तेमाल करने के लिए, ऐप्लिकेशन को टॉप-लेवल सुरक्षित कॉन्टेक्स्ट को भी ट्रैक किया जा सकता है.

उपयोगकर्ता के कंट्रोल और निजता

हम हमेशा से चाहते हैं कि नुकसान पहुंचाने वाले लोग या ग्रुप, नए एपीआई का गलत इस्तेमाल न करें. स्वतंत्र रूप से काम करने वाली वेबसाइटें, हालांकि, यह जानकारी एक ही इकाई की ओर से कंट्रोल की जाती है, इसलिए उपयोगकर्ता के काम न करने से जुड़ी जानकारी हासिल की जा सकती है और अलग-अलग ऑरिजिन के यूनीक उपयोगकर्ताओं की पहचान करने के लिए, डेटा को आपस में जोड़ें. इस तरह के हमलों को कम करने के लिए, कुछ समय से इस्तेमाल में न होने की जानकारी देने वाला एपीआई, रिपोर्ट किए गए इनऐक्टिव इवेंट की जानकारी का स्तर सीमित कर देता है.

सुझाव/राय दें या शिकायत करें

Chrome टीम, इस्तेमाल न होने की पहचान करने वाले एपीआई के इस्तेमाल से जुड़े आपके अनुभवों के बारे में जानना चाहती है.

हमें एपीआई के डिज़ाइन के बारे में बताएं

क्या एपीआई में ऐसा कुछ है जो आपकी उम्मीद के मुताबिक काम नहीं करता? या कुछ तरीके उपलब्ध नहीं हैं या प्रॉपर्टी से जोड़ना होगा? क्या आपके पास सुरक्षा मॉडल से जुड़ा कोई सवाल या टिप्पणी है? संबंधित GitHub रेपो पर, स्पेसिफ़िकेशन से जुड़ी समस्या दर्ज करें. या किसी मौजूदा समस्या में अपने विचार जोड़ें.

लागू करने से जुड़ी समस्या की शिकायत करना

क्या आपको Chrome को लागू करने में कोई गड़बड़ी मिली? या क्या लागू करने का तरीका, स्पेसिफ़िकेशन से अलग है? new.crbug.com पर जाकर, गड़बड़ी की शिकायत करें. ज़्यादा से ज़्यादा जानकारी दें, फिर से बनाने के लिए आसान निर्देश देखें और कॉम्पोनेंट बॉक्स में Blink>Input डालें. Glitch, जल्दी और आसान रेप्रस शेयर करने के लिए शानदार काम करता है.

यह एपीआई काम करता है

क्या आपको आइडल डिटेक्शन एपीआई का इस्तेमाल करना है? आपके सार्वजनिक समर्थन से Chrome टीम को सुविधाओं को प्राथमिकता देता है और ब्राउज़र के अन्य वेंडर को दिखाता है कि उनकी मदद करना कितना ज़रूरी है.

मददगार लिंक

स्वीकार की गई

Sam Goto के ज़रिए, आइडल डिटेक्शन एपीआई को लागू किया गया. मक्सिम सादिम ने DevTools से मदद पाने की सुविधा जोड़ी. जो मेडली को धन्यवाद, कायस बास्क, और Reilly Grant चैनल के क्रिएटर ने इस लेख की समीक्षाओं के बारे में बताया. हीरो इमेज है: फ़र्नांडो हर्नांडीज़ अनस्प्लैश.