Electron에서 iframe
태그를 사용할...수 없다.
이 무슨 시작부터 글 제목이랑 반대되는 이야기를 하는 건가 싶을 텐데, 사실 Electron이 보안상의 문제로 iframe
을 이용한 외부 사이트 접근을 기본적으로 차단하고 있다고 보면 된다. 외부 사이트에서 내 로컬에서 돌아가는 Electron 앱의 node.js 환경을 그대로 사용할 수 있게 되기 때문이다.
물론 대안은 있다
iframe
대신 사용할 수 있는 대안으로 Electron은 webview
태그를 지원한다. 별도의 크로미움 프로세스로 동작하는 웹 뷰를 앱 내부에 넣을 수 있게 해주는 마법이다.
그런데 이 webview
는 기본적으론 비활성화 상태이기 때문에 우선 설정에서 열어줘야 한다. Electron 앱의 시작 스크립트에서 BrowserWindow
인스턴스를 생성하는 곳에서 설정이 가능하다.
window = new BrowserWindow({
...
webPreferences: {
...
webviewTag: true,
...
}
});
webPreferences
항목의 webviewTag
옵션을 true
로 세팅하면 webview
를 사용할 수 있게 된다.
이제 원하는 곳에 아래와 같은 webview
태그를 넣어보자.
<webview src="https://foo.bar/page" style="width: 100%; height: 100%"></webview>
이렇게하면 webview
를 이용해 iframe
과 비슷한 기능을 붙일 수 있다.
참고로 스타일은 필수는 아니다. 하지만 저게 없으면 아마 크기가 작아서 제대로 안 보일 테니까 예시로 넣어놓은 거라 생각하자.
관련된 글들
Electron + Svelte로 데스크톱 앱 개발 시작해보기
개인 프로젝트를 여러 방식으로 해보다 Electron을 이용해볼까 하는 약간의 욕심이 생겼다. 그래서 공부를 하던 중 웹 UI 프레임워크를 알아두면 좋을 것 같아서 찾아보다 Svlete의 평이 좋을 것을
seorenn.tistory.com
Electron의 app 정보를 얻기 위한 삽질기
개인적으로 Electron으로 공부 겸 사이드 프로젝트를 시작하고 있었다. 그 과정에서 앱의 데이터를 데이터베이스에 저장하기 위해 몇 가지 정보를 찾아보다 데이터베이스 파일을 저장할 위치에
seorenn.tistory.com
Electron에서 타이틀 바 숨기기 및 창 이동 문제
최근의 macOS 앱들은 전통적인 타이틀 바 대신 타이틀 바 영역까지 툴바나 콘텐츠로 꽉꽉 채우는 것이 유행인 것 같다. 개인적으로도 이런 디자인이 유려하고 쓸모가 많은 것 같아 선호하기도 한
seorenn.tistory.com
'기술적인 이야기 > 웹 개발' 카테고리의 다른 글
Electron에서 타이틀 바 숨기기 및 창 이동 문제 (274) | 2022.02.06 |
---|---|
Electron의 app 정보를 얻기 위한 삽질기 (259) | 2022.01.30 |
Electron + Svelte로 데스크톱 앱 개발 시작해보기 (382) | 2022.01.16 |
HTML, CSS, Javascript 압축하기 (1038) | 2020.06.15 |
비동기 웹 서버 C 구현체 httpserver.h (0) | 2019.12.17 |
댓글