首页 > 其他分享 >Screen Lock

Screen Lock

时间:2024-04-28 16:45:58浏览次数:23  
标签:const Lock Screen 亮度 wakeLock addEventListener 屏幕 唤醒

防止设备因为闲置而自动调低亮度或锁定屏幕,确保屏幕始终保持开启状态


<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0" />
    <title>防止空闲锁屏/降亮度</title>
  </head>
  <body>
    <strong>能够防止设备因为闲置而自动调低亮度或锁定屏幕, 确保屏幕始终保持开启状态</strong>
    <hr>
    <button type="button" class="btn-lock">锁定</button>
    <button type="button" class="btn-bright">释放</button>
    <br /><br />
    <div style="display: flex; align-items: center">
      <span>released status: &nbsp;</span>
      <h3 class="lock-status"></h3>
    </div>

    <script>
      // 能够防止设备因为闲置而自动调低亮度或锁定屏幕

      const lockBtn = document.querySelector('.btn-lock');
      const brightBtn = document.querySelector('.btn-bright');
      const lockStatus = document.querySelector('.lock-status');

      /** @type {WakeLockSentinel} */
      let wakeLock = null;
      lockBtn.addEventListener('click', async () => {
        wakeLock = await navigator.wakeLock.request('screen');
        console.log('唤醒锁已激活 => ', wakeLock);
        lockStatus.textContent = '唤醒锁已激活';

        wakeLock.addEventListener('release', () => {
          console.log('唤醒锁已释放 => ', wakeLock);
          lockStatus.textContent = '唤醒锁已释放';
        });
      });
      brightBtn.addEventListener('click', async () => {
        if (!wakeLock) return;

        await wakeLock.release();
        wakeLock = null;
      });
    </script>
  </body>
</html>

标签:const,Lock,Screen,亮度,wakeLock,addEventListener,屏幕,唤醒
From: https://www.cnblogs.com/chlai/p/18164009

相关文章

  • Java中的读写锁ReentrantReadWriteLock详解,存在一个小缺陷
    写在开头最近是和java.util.concurrent.locks包下的同步类干上了,素有并发根基之称的concurrent包中全是精品,今天我们继续哈,今天学习的主题要由一个大厂常问的Java面试题开始:小伙子,来说一说Java中的读写锁,你都用过哪些读写锁吧?这个问题小伙伴们遇到了该如何回答呢?心里琢磨去......
  • SystemVerilog -- 6.4 Interface ~ Clocking Blocks
    SystemVerilogClockingBlocks默认情况下,模块端口和接口不指定信号之间的任何时序要求或同步方案。在clocking和endclocking之间定义的时钟块正是这样做的。它是与特定时钟同步的信号集合,有助于指定时钟和信号之间的定时要求。这将允许测试编写者更多地关注事务,而不是担心信号......
  • JUC工具(LockSupport)
    LockSupport用来创建锁和其他同步类的基本线程阻塞LockSupport用来创建锁和其他同步类的基本线程阻塞原语。简而言之,当调用LockSupport.park时,表示当前线程将会等待,直至获得许可,当调用LockSupport.unpark时,必须把等待获得许可的线程作为参数进行传递,好让此线程继续运行LockSuppo......
  • HarmonyOS中实现 非可重入锁 NonReentrantLock
    背景在多线程编程中,确保资源的互斥访问是至关重要的。允许并行执行,但需要同步机制来避免数据竞争和竞态条件。锁的重要性锁是一种同步机制,用于控制对共享资源的访问。在ArkTs中,传统的锁实现依赖于语言级别的原子操作,但随着共享内存的引入,我们需要一种新的同步机制。使用Shared......
  • Java ---- 阻塞队列 Blocking Queue
    阻塞队列(BlockingQueue)是一种特殊类型的队列,用于多线程环境中,实现进程通信;常见的Java阻塞队列包括:(1)ArrayBlockingQueue(有界队列)内部是采用数组存储元素的,初始化需要指定容器大小,ArrayBlockingQueue可以用于实现数据缓存、限流、生产者-消费者模式等各种应用。在队列的......
  • 8. Mutex Locks互斥锁
    临界区问题(critical-sectionproblem)Eachconcurrent(并发)processhasasegmentofcode,calledacriticalsection,inwhichtheprocessmaybechangingcommonvariables(公共数据),updatingatable,wrintingafile,andsoon.Theimportantfeatureofthesys......
  • 【Maven】解决 Since Maven 3.8.1 http repositories are blocked.问题
    【Maven】解决SinceMaven3.8.1httprepositoriesareblocked.问题在你本地setting.xml文件中 附上这段,然后mvnclean后,重新Reimport就可以了  <!--解决SinceMaven3.8.1httprepositoriesareblocked.问题--><mirrors><mirro......
  • 并发编程(ReentrantReadWriteLock)
    ReentrantReadWriteLock是一个可重入读写锁,内部提供了读锁和写锁的单独实现。其中读锁用于只读操作,可被多个线程共享;写锁用于写操作,只能互斥访问ReentrantReadWriteLock尤其适合读多写少的应用场景读多写少:在一些业务场景中,大部分只是读数据,写数据很少,如果这种场景下依然使用......
  • 并发编程(ReentrantLock)
    ReentrantLock是独占锁,每次只能有一个线程能获取到锁(支持重入)。其他未获取锁的线程会放入的CLH队列中,等待当前线程唤醒;主要分为公平锁和非公平锁,由内部类FairSync和NoFairSync来实现。主要的区别在于非公平锁每次都会尝试竞争,竞争不到锁才会放入到CLH队列中NonfairSync类......
  • 玩转云端 | 拥有HBlock这项“存储盘活绝技”,数据中心也能“热辣瘦身”!
    夏天马上就要到了,“瘦身”不光是特定人群的需求,也是数据中心的需求。构建轻量化、低碳化、高性价比的新型数据中心,更有效地支撑经济社会数字化转型,已成为业界主流趋势。如何让数据中心“热辣瘦身”?轻量级存储集群控制器——天翼云存储资源盘活系统HBlock必不可少! “HBlock健身......