स्क्रीन वेक लॉक एपीआई की मदद से स्क्रीन चालू रखें

स्क्रीन वेक लॉक एपीआई, किसी ऐप्लिकेशन को लगातार चलाने की ज़रूरत होने पर डिवाइस को मंद या लॉक होने से रोकने का तरीका है.

Screen वेक लॉक एपीआई क्या है?

बैटरी को तेज़ी से खर्च होने से बचाने के लिए, ज़्यादातर डिवाइस बाईं ओर से तुरंत स्लीप मोड (कम बैटरी मोड) में चले जाते हैं कुछ समय से इस्तेमाल में नहीं है. आम तौर पर, यह ठीक होता है, लेकिन कुछ ऐप्लिकेशन को स्क्रीन को जगाने की सुविधा चालू कर देती है. उदाहरण के लिए, खाना बनाने से जुड़े ऐप्लिकेशन जिनमें किसी रेसिपी या गेम को बनाने का स्टेप दिखाया गया हो जैसे, Ball Puzzle, जो डिवाइस का इस्तेमाल करती है इनपुट के लिए Motion API.

स्क्रीन वेक लॉक एपीआई, डिवाइस की रोशनी को कम होने से रोकने का तरीका बताता है और स्क्रीन लॉक कर रहे हैं. यह की सुविधा से ऐसे नए अनुभव मिलते हैं जिन्हें अब तक, प्लैटफ़ॉर्म के हिसाब से ऐप्लिकेशन की ज़रूरत होती थी.

स्क्रीन वेक लॉक एपीआई, हैकी की ज़रूरत को कम करता है और संभावित रूप से कारगर तरीके अपनाएं. यह पुराने एपीआई की कमियों को ठीक करता है जो सिर्फ़ स्क्रीन को चालू रखने तक सीमित था और उनके सुरक्षा और निजता से जुड़ी समस्याएं हो सकती हैं.

Screen वेक लॉक एपीआई के लिए, इस्तेमाल के सुझाए गए उदाहरण

RioRun, यह एक वेब ऐप्लिकेशन है जिसे The Guardian ने बनाया है, का इस्तेमाल सही तरीके से किया गया है (हालांकि, यह अब उपलब्ध नहीं है). यह ऐप्लिकेशन आपको 2016 के रूट के हिसाब से रियो के वर्चुअल ऑडियो टूर पर ले जाएगा ओलंपिक मैराथन. वेक लॉक के बिना, उपयोगकर्ता भ्रमण चलने के दौरान स्क्रीन बार-बार बंद हो जाएंगी, उसे इस्तेमाल करना कठिन हो जाता है.

बेशक, इसके इस्तेमाल के और भी कई मामले हैं:

  • ऐसा रेसिपी ऐप्लिकेशन जो केक बनाते या बनाते समय स्क्रीन चालू रखता है डिनर
  • बोर्डिंग पास या टिकट ऐप्लिकेशन, जो स्क्रीन को बनाए रखता है जब तक बारकोड स्कैन नहीं किया जाता, तब तक चालू रहेगा
  • कीऑस्क स्टाइल वाला ऐप्लिकेशन, जो स्क्रीन को लगातार चालू रखता है
  • वेब पर आधारित प्रज़ेंटेशन ऐप्लिकेशन, जो स्क्रीन को बनाए रखता है प्रज़ेंटेशन के दौरान चालू रखें

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

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

Screen वेक लॉक एपीआई का इस्तेमाल करना

वेक लॉक के टाइप

फ़िलहाल, Screen वेक लॉक एपीआई, एक तरह का वेक लॉक उपलब्ध कराता है: screen.

screen वेक लॉक

screen वेक लॉक, डिवाइस की स्क्रीन को घूमने से रोकता है ताकि उपयोगकर्ता स्क्रीन पर दिखने वाली जानकारी देख सकें.

स्क्रीन वेक लॉक की सुविधा चालू की जा रही है

स्क्रीन वेक लॉक का अनुरोध करने के लिए, आपको navigator.wakeLock.request() तरीके को कॉल करना होगा जो WakeLockSentinel ऑब्जेक्ट दिखाता है. इस तरीके को पैरामीटर के तौर पर, अपने हिसाब से वेक लॉक का इस्तेमाल करें, जो फ़िलहाल सिर्फ़ 'screen' तक सीमित है. इसलिए, यह ज़रूरी नहीं है. ब्राउज़र कई वजहों से अनुरोध को अस्वीकार कर सकता है (उदाहरण के लिए, क्योंकि बैटरी बहुत कम चार्ज है), इसलिए, कॉल को try…catch स्टेटमेंट में पूरा करना एक अच्छा तरीका है. अगर कोई गड़बड़ी होती है, तो अपवाद के मैसेज में और जानकारी शामिल की जाएगी.

स्क्रीन वेक लॉक को रिलीज़ करना

आपको स्क्रीन वेक लॉक को हटाने का तरीका भी चाहिए, जिसे WakeLockSentinel ऑब्जेक्ट में से release() तरीका. अगर आपने WakeLockSentinel का रेफ़रंस सेव नहीं किया है, तो लॉक को मैन्युअल रूप से रिलीज़ करने के लिए, लेकिन मौजूदा टैब के न दिखने पर इसे हटा दिया जाएगा.

अगर आपको यह सुविधा चालू करनी हो कि स्क्रीन वेक लॉक अपने-आप हट जाए लेकिन release() को कॉल करने के लिए, window.setTimeout() का इस्तेमाल किया जा सकता है. इसका उदाहरण नीचे दिया गया है.

// The wake lock sentinel.
let wakeLock = null;

// Function that attempts to request a screen wake lock.
const requestWakeLock = async () => {
  try {
    wakeLock = await navigator.wakeLock.request();
    wakeLock.addEventListener('release', () => {
      console.log('Screen Wake Lock released:', wakeLock.released);
    });
    console.log('Screen Wake Lock released:', wakeLock.released);
  } catch (err) {
    console.error(`${err.name}, ${err.message}`);
  }
};

// Request a screen wake lock…
await requestWakeLock();
// …and release it again after 5s.
window.setTimeout(() => {
  wakeLock.release();
  wakeLock = null;
}, 5000);

WakeLockSentinel ऑब्जेक्ट में released नाम की एक प्रॉपर्टी है, जो दिखाता है कि क्या किसी रक्षक को पहले ही रिलीज़ कर दिया गया है. शुरुआत में इसकी वैल्यू false है. यह "release" के बाद true में बदल जाती है इवेंट भेज दिया जाता है. इस प्रॉपर्टी की मदद से, वेब डेवलपर को यह जानने में मदद मिलती है कि को रिलीज़ कर दिया गया है, ताकि उन्हें मैन्युअल तरीके से ट्रैक करने की ज़रूरत न हो. यह Chrome 87 के बाद से उपलब्ध है.

स्क्रीन वेक लॉक का लाइफ़साइकल

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

स्क्रीन वेक लॉक को फिर से पाने के लिए, visibilitychange इवेंट सुनो और इनके होने पर नए स्क्रीन वेक लॉक का अनुरोध करें:

const handleVisibilityChange = async () => {
  if (wakeLock !== null && document.visibilityState === 'visible') {
    await requestWakeLock();
  }
};

document.addEventListener('visibilitychange', handleVisibilityChange);

सिस्टम के संसाधनों पर पड़ने वाले अपने असर को कम करें

क्या आपको अपने ऐप्लिकेशन में, स्क्रीन वेक लॉक का इस्तेमाल करना चाहिए? आपका तरीका आपके ऐप्लिकेशन की ज़रूरतों पर निर्भर करता है. भले ही, आपको अपने ऐप्लिकेशन के लिए सबसे आसान तरीका इस्तेमाल करें, ताकि सिस्टम के संसाधनों पर पड़ने वाले असर को कम कैसे किया जाए.

अपने ऐप्लिकेशन में स्क्रीन वेक लॉक जोड़ने से पहले, यह देखें कि क्या आपके इस्तेमाल के उदाहरण इसे नीचे दिए गए वैकल्पिक समाधानों में से किसी एक से हल किया जाएगा:

  • अगर आपका ऐप्लिकेशन लंबे समय तक डाउनलोड होता रहता है, तो बैकग्राउंड फ़ेच करने की सुविधा.
  • अगर आपका ऐप्लिकेशन किसी बाहरी सर्वर से डेटा सिंक कर रहा है, तो बैकग्राउंड सिंक करने की सुविधा भी चालू कर सकते हैं.

डेमो

स्क्रीन वेक लॉक का डेमो और डेमो सोर्स देखें. ध्यान दें कि टैब स्विच करने पर, स्क्रीन वेक लॉक अपने-आप कैसे रिलीज़ हो जाता है का इस्तेमाल करना चाहिए.

ओएस टास्क मैनेजर में, स्क्रीन वेक लॉक की सुविधा

आप अपने ऑपरेटिंग सिस्टम के टास्क मैनेजर का इस्तेमाल करके देख सकते हैं कि क्या कोई ऐप्लिकेशन अपने कंप्यूटर को स्लीप मोड (कम बैटरी मोड) में जाने से रोकें. नीचे दिया गया वीडियो macOS दिखाता है गतिविधि मॉनिटर यह दिखाता है कि Chrome में एक सक्रिय स्क्रीन वेक लॉक है, जो सिस्टम को चालू रखता है.

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

वेब प्लैटफ़ॉर्म इनक्यूबेटर कम्यूनिटी ग्रुप (डब्ल्यूआईसीजी) और Chrome टीम आपके बारे में जानना चाहती है स्क्रीन वेक लॉक एपीआई की मदद से विचारों और अनुभवों के बारे में जानें.

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

क्या एपीआई के बारे में कुछ ऐसा है जो उम्मीद के मुताबिक काम नहीं करता? या क्या अपने आइडिया को लागू करने के लिए, कुछ तरीके या प्रॉपर्टी मौजूद नहीं हैं?

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

क्या आपको Chrome को लागू करने में कोई गड़बड़ी मिली? या, लागू करने पर क्या यह स्पेसिफ़िकेशन से अलग है?

  • https://new.crbug.com पर जाकर, गड़बड़ी की शिकायत करें. ज़्यादा से ज़्यादा जानकारी शामिल करना न भूलें ब्यौरा दें, उस गड़बड़ी को दोबारा पैदा करने के लिए आसान निर्देश दें, और कॉम्पोनेंट को Blink>WakeLock पर सेट करें. Glitch अच्छी तरह काम करता है तुरंत और आसानी से दोहराने के लिए.

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

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

मददगार लिंक

स्वीकार की गई

हीरो इमेज: Unस्प्लैश पर केट स्टोन मैथेसन गेम. टास्क मैनेजर का वीडियो हेनरी लिम.