Skip to main content

Class: ServiceWorkers

Class: ServiceWorkers

세션에서 활성화된 서비스 워커의 이벤트를 쿼리하고 수신한다.

프로세스: Main
이 클래스는 'electron' 모듈에서 직접 내보내지 않는다. Electron API의 다른 메서드의 반환값으로만 사용할 수 있다.

ServiceWorkers 클래스의 인스턴스는 SessionserviceWorkers 속성을 통해 접근할 수 있다.

예를 들어:

const { session } = require('electron')

// 모든 서비스 워커를 가져온다.
console.log(session.defaultSession.serviceWorkers.getAllRunning())

// 로그를 처리하고 서비스 워커 정보를 가져온다.
session.defaultSession.serviceWorkers.on('console-message', (event, messageDetails) => {
console.log(
'서비스 워커 메시지를 받음',
messageDetails,
'출처',
session.defaultSession.serviceWorkers.getFromVersionID(messageDetails.versionId)
)
})

인스턴스 이벤트

ServiceWorkers 인스턴스에서 사용할 수 있는 이벤트는 다음과 같다:

Event: 'console-message'

반환값:

  • event Event
  • messageDetails Object - 콘솔 메시지에 대한 정보
    • message string - 실제 콘솔 메시지
    • versionId number - 로그 메시지를 보낸 서비스 워커의 버전 ID
    • source string - 이 메시지의 소스 타입. javascript, xml, network, console-api, storage, rendering, security, deprecation, worker, violation, intervention, recommendation 또는 other 중 하나가 될 수 있다.
    • level number - 로그 레벨, 0부터 3까지. 순서대로 verbose, info, warning, error에 해당한다.
    • sourceUrl string - 메시지가 발생한 URL
    • lineNumber number - 이 콘솔 메시지를 발생시킨 소스의 라인 번호

서비스 워커가 콘솔에 무언가를 기록할 때 발생한다.

이벤트: 'registration-completed'

반환값:

  • event Event
  • details Object - 등록된 서비스 워커에 대한 정보
    • scope string - 서비스 워커가 등록된 기본 URL

서비스 워커가 등록되면 발생하는 이벤트이다. navigator.serviceWorker.register('/sw.js') 호출이 성공적으로 완료된 후나 크롬 확장 프로그램이 로드될 때 발생할 수 있다.

인스턴스 메서드

ServiceWorkers 인스턴스에서 사용할 수 있는 메서드는 다음과 같다:

serviceWorker.getAllRunning()

Record<number, ServiceWorkerInfo> 타입을 반환한다. 이는 ServiceWorkerInfo 객체로, 키는 서비스 워커 버전 ID이고 값은 해당 서비스 워커에 대한 정보이다.

serviceWorkers.getFromVersionID(versionId)

  • versionId number

ServiceWorkerInfo를 반환한다. 이는 해당 서비스 워커에 대한 정보를 담고 있다.

만약 서비스 워커가 존재하지 않거나 실행 중이 아닌 경우, 이 메서드는 예외를 발생시킨다.