স্ক্রীন ওয়েক লক এপিআই দিয়ে জাগ্রত থাকুন

স্ক্রীন ওয়েক লক এপিআই ডিভাইসগুলিকে স্ক্রীনটি ম্লান বা লক করা থেকে বিরত করার একটি উপায় প্রদান করে যখন একটি অ্যাপ্লিকেশন চালু রাখা প্রয়োজন।

স্ক্রীন ওয়েক লক এপিআই কি?

ব্যাটারি নিষ্কাশন এড়াতে, নিষ্ক্রিয় অবস্থায় থাকলে বেশিরভাগ ডিভাইস দ্রুত ঘুমাতে যায়। যদিও এটি বেশিরভাগ সময় ঠিক থাকে, কিছু অ্যাপ্লিকেশনকে তাদের কাজ সম্পূর্ণ করার জন্য স্ক্রীন জাগ্রত রাখতে হবে। উদাহরণগুলির মধ্যে রয়েছে রান্নার অ্যাপ যা একটি রেসিপি বা বল পাজলের মতো একটি গেমের ধাপগুলি দেখায়, যা ইনপুটের জন্য ডিভাইস মোশন API ব্যবহার করে।

স্ক্রিন ওয়েক লক এপিআই ডিভাইসটিকে স্ক্রীনটি ম্লান করা এবং লক করা থেকে আটকানোর একটি উপায় প্রদান করে৷ এই ক্ষমতা নতুন অভিজ্ঞতা সক্ষম করে যে, এখন পর্যন্ত, একটি প্ল্যাটফর্ম-নির্দিষ্ট অ্যাপের প্রয়োজন।

স্ক্রিন ওয়েক লক এপিআই হ্যাকি এবং সম্ভাব্য শক্তি-ক্ষুধার্ত সমাধানের প্রয়োজনীয়তা হ্রাস করে। এটি একটি পুরানো API-এর ত্রুটিগুলিকে সম্বোধন করে যা কেবল স্ক্রীনটি চালু রাখার মধ্যে সীমাবদ্ধ ছিল এবং এতে বেশ কয়েকটি সুরক্ষা এবং গোপনীয়তা সমস্যা ছিল।

স্ক্রীন ওয়েক লক API-এর জন্য প্রস্তাবিত ব্যবহারের ক্ষেত্রে

RioRun , দ্য গার্ডিয়ান দ্বারা তৈরি একটি ওয়েব অ্যাপ, একটি নিখুঁত ব্যবহারের ক্ষেত্রে ছিল (যদিও এটি আর উপলব্ধ নেই)। অ্যাপটি আপনাকে 2016 সালের অলিম্পিক ম্যারাথনের রুট অনুসরণ করে রিওর একটি ভার্চুয়াল অডিও সফরে নিয়ে যায়। ওয়েক লক ছাড়া, ট্যুর চলাকালীন ব্যবহারকারীদের স্ক্রিন ঘন ঘন বন্ধ হয়ে যেত, এটি ব্যবহার করা কঠিন করে তোলে।

অবশ্যই, অন্যান্য ব্যবহারের ক্ষেত্রে প্রচুর আছে:

  • একটি রেসিপি অ্যাপ যা আপনি কেক বেক করার সময় বা রাতের খাবার রান্না করার সময় স্ক্রীন চালু রাখে
  • একটি বোর্ডিং পাস বা টিকিট অ্যাপ যা বারকোড স্ক্যান না করা পর্যন্ত স্ক্রীন চালু রাখে
  • একটি কিয়স্ক-স্টাইলের অ্যাপ যা ক্রমাগত স্ক্রীন চালু রাখে
  • একটি ওয়েব-ভিত্তিক উপস্থাপনা অ্যাপ যা একটি উপস্থাপনার সময় স্ক্রীন চালু রাখে

এখনকার অবস্থা

ধাপ স্ট্যাটাস
1. ব্যাখ্যাকারী তৈরি করুন N/A
2. স্পেসিফিকেশনের প্রাথমিক খসড়া তৈরি করুন সম্পূর্ণ
3. প্রতিক্রিয়া সংগ্রহ করুন এবং নকশা পুনরাবৃত্তি করুন সম্পূর্ণ
4. মূল বিচার সম্পূর্ণ
5. লঞ্চ করুন সম্পূর্ণ

স্ক্রিন ওয়েক লক এপিআই ব্যবহার করা

ওয়েক লক প্রকার

স্ক্রিন ওয়েক লক এপিআই বর্তমানে শুধুমাত্র এক ধরনের ওয়েক লক প্রদান করে: screen

screen ওয়েক লক

একটি screen ওয়েক লক ডিভাইসের স্ক্রীনকে বন্ধ হতে বাধা দেয় যাতে ব্যবহারকারী স্ক্রিনে প্রদর্শিত তথ্য দেখতে পারে।

একটি স্ক্রিন ওয়েক লক পাওয়া যাচ্ছে

একটি স্ক্রীন ওয়েক লকের অনুরোধ করতে, আপনাকে navigator.wakeLock.request() পদ্ধতিতে কল করতে হবে যা একটি WakeLockSentinel অবজেক্ট প্রদান করে। আপনি এই পদ্ধতিটি একটি প্যারামিটার হিসাবে পছন্দসই ওয়েক লক টাইপটি পাস করেন, যা বর্তমানে শুধুমাত্র 'screen' এ সীমাবদ্ধ এবং তাই ঐচ্ছিক । ব্রাউজার বিভিন্ন কারণে অনুরোধটি প্রত্যাখ্যান করতে পারে (উদাহরণস্বরূপ, ব্যাটারি চার্জের মাত্রা খুব কম হওয়ায়), তাই এটি একটি ভাল অভ্যাস একটি try…catch স্টেটমেন্ট। ব্যর্থতার ক্ষেত্রে ব্যতিক্রমের বার্তায় আরও বিশদ থাকবে।

স্ক্রীন ওয়েক লক রিলিজ করা হচ্ছে

এছাড়াও আপনার স্ক্রীন ওয়েক লক রিলিজ করার একটি উপায় প্রয়োজন, যা WakeLockSentinel অবজেক্টের release() পদ্ধতিতে কল করার মাধ্যমে অর্জন করা হয়। আপনি যদি WakeLockSentinel এর একটি রেফারেন্স সঞ্চয় না করেন তবে ম্যানুয়ালি লকটি প্রকাশ করার কোন উপায় নেই, তবে বর্তমান ট্যাবটি অদৃশ্য হয়ে গেলে এটি প্রকাশ করা হবে।

আপনি যদি একটি নির্দিষ্ট সময় পেরিয়ে যাওয়ার পরে স্বয়ংক্রিয়ভাবে স্ক্রিন ওয়েক লকটি ছেড়ে দিতে চান, তাহলে আপনি window.setTimeout() ব্যবহার করে release() কল করতে পারেন, যেমনটি নীচের উদাহরণে দেখানো হয়েছে।

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

সিস্টেম সম্পদের উপর আপনার প্রভাব কমিয়ে দিন

আপনার অ্যাপে স্ক্রিন ওয়েক লক ব্যবহার করা উচিত? আপনি যে পদ্ধতিটি গ্রহণ করেন তা আপনার অ্যাপের প্রয়োজনের উপর নির্ভর করে। যাই হোক না কেন, সিস্টেম রিসোর্সে এর প্রভাব কমাতে আপনার অ্যাপের জন্য সম্ভাব্য সবচেয়ে হালকা পদ্ধতি ব্যবহার করা উচিত।

আপনার অ্যাপে একটি স্ক্রিন ওয়েক লক যোগ করার আগে, আপনার ব্যবহারের ক্ষেত্রে নিম্নলিখিত বিকল্প সমাধানগুলির মধ্যে একটি দিয়ে সমাধান করা যেতে পারে কিনা তা বিবেচনা করুন:

  • যদি আপনার অ্যাপটি দীর্ঘ-চলমান ডাউনলোডগুলি সম্পাদন করে, তাহলে ব্যাকগ্রাউন্ড ফেচ ব্যবহার করার কথা বিবেচনা করুন।
  • যদি আপনার অ্যাপটি একটি বাহ্যিক সার্ভার থেকে ডেটা সিঙ্ক্রোনাইজ করে, তাহলে ব্যাকগ্রাউন্ড সিঙ্ক ব্যবহার করার কথা বিবেচনা করুন।

ডেমো

স্ক্রীন ওয়েক লক ডেমো এবং ডেমো উৎস দেখুন। আপনি যখন ট্যাব বা অ্যাপগুলি স্যুইচ করেন তখন কীভাবে স্ক্রিন ওয়েক লক স্বয়ংক্রিয়ভাবে প্রকাশিত হয় তা লক্ষ্য করুন।

OS টাস্ক ম্যানেজারে স্ক্রীন ওয়েক লক

আপনি আপনার অপারেটিং সিস্টেমের টাস্ক ম্যানেজার ব্যবহার করে দেখতে পারেন যে কোনও অ্যাপ্লিকেশন আপনার কম্পিউটারকে ঘুম থেকে বিরত করছে কিনা। নীচের ভিডিওটি ম্যাকোস অ্যাক্টিভিটি মনিটর দেখায় যা নির্দেশ করে যে Chrome-এ একটি সক্রিয় স্ক্রিন ওয়েক লক রয়েছে যা সিস্টেমকে জাগ্রত রাখে।

প্রতিক্রিয়া

ওয়েব প্ল্যাটফর্ম ইনকিউবেটর কমিউনিটি গ্রুপ (WICG) এবং Chrome টিম স্ক্রীন ওয়েক লক API এর সাথে আপনার চিন্তাভাবনা এবং অভিজ্ঞতার কথা শুনতে চায়।

API ডিজাইন সম্পর্কে আমাদের বলুন

API সম্পর্কে এমন কিছু আছে যা প্রত্যাশিত হিসাবে কাজ করে না? অথবা আপনার ধারণা বাস্তবায়নের জন্য আপনার প্রয়োজনীয় পদ্ধতি বা বৈশিষ্ট্যগুলি অনুপস্থিত আছে?

বাস্তবায়নের সাথে একটি সমস্যা রিপোর্ট করুন

আপনি কি Chrome এর বাস্তবায়নের সাথে একটি বাগ খুঁজে পেয়েছেন? অথবা বাস্তবায়ন বৈশিষ্ট থেকে ভিন্ন?

  • https://new.crbug.com এ একটি বাগ ফাইল করুন। আপনি যতটা পারেন বিশদ অন্তর্ভুক্ত করতে ভুলবেন না, বাগ পুনরুত্পাদনের জন্য সহজ নির্দেশাবলী প্রদান করুন এবং Blink>WakeLockউপাদান সেট করুন। দ্রুত এবং সহজ রিপ্রো শেয়ার করার জন্য গ্লিচ দুর্দান্ত কাজ করে।

API এর জন্য সমর্থন দেখান

আপনি কি স্ক্রীন ওয়েক লক এপিআই ব্যবহার করার পরিকল্পনা করছেন? আপনার সর্বজনীন সমর্থন Chrome টিমকে বৈশিষ্ট্যগুলিকে অগ্রাধিকার দিতে সাহায্য করে এবং অন্যান্য ব্রাউজার বিক্রেতাদের দেখায় যে তাদের সমর্থন করা কতটা গুরুত্বপূর্ণ৷

  • আপনি কিভাবে WICG ডিসকোর্স থ্রেডে API ব্যবহার করার পরিকল্পনা করছেন তা শেয়ার করুন।
  • #WakeLock হ্যাশট্যাগ ব্যবহার করে @ChromiumDev- এ একটি টুইট পাঠান এবং আপনি কোথায় এবং কীভাবে এটি ব্যবহার করছেন তা আমাদের জানান।

সাহা্য্যকারী লিংক

স্বীকৃতি

আনস্প্ল্যাশে কেট স্টোন ম্যাথেসনের হিরো ছবিহেনরি লিমের টাস্ক ম্যানেজার ভিডিও সৌজন্যে।