브라우저 창이 Electron의 화면 안에 있는지 확인하는 방법

5010 단어 electronjavascript
Electron 앱이 마지막 창 위치를 기억하고 시작 시 복원하는 경우 보조 화면이 있는 사용자에게 문제가 발생할 수 있습니다.
특정 상황에서 보조 화면이 분리될 수 있기 때문에 화면이 연결되지 않은 상태에서 위치 복원 시 창이 화면 밖에 있을 수 있습니다.
이를 감지하기 위해 주어진 위치가 다음과 같이 화면 내부에 있는지 확인할 수 있습니다.

import { remote, ipcRenderer, BrowserWindow } from 'electron'
const { screen } = remote

function isWithinDisplayBounds(pos: { x: number, y: number }) {
  const displays = screen.getAllDisplays()
  return displays.reduce((result, display) => {
    const area = display.workArea
    return (
      result ||
      (pos.x >= area.x &&
        pos.y >= area.y &&
        pos.x < area.x + area.width &&
        pos.y < area.y + area.height)
    )
  }, false)
}


그런 다음 범위를 벗어난 경우 기본 화면으로 이동해야 합니다.

const isOnScreen = isWithinDisplayBounds({ x, y })
const primaryScreenBounds = screen.getPrimaryDisplay().bounds
if (!isOnScreen) {
  x = (primaryScreenBounds.width - w) / 2
  y = (primaryScreenBounds.height - h) / 2
}



  • 내 앱: Inkdrop - Markdown note-taking app
  • &에 나를 따르라

  • 좋은 웹페이지 즐겨찾기