Project/sendbird를 활용한 웹 채팅
[Sendbird를 활용한 웹 채팅] 14. Electron tray(트레이)
반응형
1. Electron에서 창을 닫았을 때 트레이로 숨기기
public/electron.js
function createWindow() {
...
initTrayIconMenu(win);
win.on("close", (e) => {
if (win.isVisible()) {
win.hide();
e.preventDefault();
}
});
...
}
let tray;
function initTrayIconMenu(win) {
//임시 아이콘
const iconPath = path.join(__dirname, "/../build/logo192.png");
tray = new Tray(nativeImage.createFromPath(iconPath));
//트레이 아이콘 오른쪽 버튼 클릭 시 보여줄 메뉴 설정
const contextMenu = Menu.buildFromTemplate([
{
label: "열기",
type: "normal",
click() {
win.show();
},
},
{
label: "닫기",
type: "normal",
role: "quit",
},
]);
tray.setToolTip("채팅");
tray.setContextMenu(contextMenu);
tray.on("click", () => (win.isVisible() ? win.hide() : win.show()));
}
결과
닫기버튼을 눌러 모든 창을 닫아도 앱이 종료되는 것이 아니라 트레이에 숨는다. 이런 상태에서 알림이 오면 창은 닫혀있지만 정상적으로 알림을 받을 수 있다!
Reference
반응형
'Project > sendbird를 활용한 웹 채팅' 카테고리의 다른 글
[Sendbird를 활용한 웹 채팅] 15. 결과물 이미지 모음 (2) | 2021.10.02 |
---|---|
[Sendbird를 활용한 웹 채팅] 13. Electron window open 설정 - setWindowOpenHandler, 윈도우 포커스 맞추기 (0) | 2021.09.22 |
[Sendbird를 활용한 웹 채팅] 12. 채팅 페이지 라우팅의 변천사 & 그룹 채팅 메세지 읽음 동기화(electron) (0) | 2021.09.22 |
[Sendbird를 활용한 웹 채팅] 11. CRA 프로젝트 Electron으로 패키징하기 (0) | 2021.09.21 |
[Sendbird를 활용한 웹 채팅] 10. 채팅 페이지2 - scrollToBottom, 관리자 공지, Push 알림 (0) | 2021.09.20 |