배경설명
PoC
- 웹앱 내 달력 UI 화면 출력
- 일정 이벤트 영역 표시 (일 : 하루 or 기간 : 이틀 이상)
- 일정 클릭 이벤트 커스텀
솔루션
fullcalendar 도입
샘플 소스
- 사내망 반입을 위한 js import 방식 채택
<script src='fullcalendar-6.0.3/dist/index.global.js'></script>
- <head><script> ... </script></head>
let calendar;
document.addEventListener('DOMContentLoaded', function() {
var calendarEl = document.getElementById('calendar');
calendar = new FullCalendar.Calendar(calendarEl, {
initialView: 'dayGridMonth',
locale: 'ko',
expandRows: true,
height: '500px',
events: [
{
idx: 0,
title: '첫번째 일정',
start: '2023-01-25',
classNames: [ 'classAddtest' ],
backgroundColor: 'red',
borderColor: 'red',
textColor: 'black',
},
{
title: '두번째 일정',
start: '2023-01-25',
end: '2023-01-28',
},
{
title: '페이지 이동 이벤트 호출',
url: 'https://naver.com',
start: '2023-02-01',
},
],
eventClick: function(info) {
alert('Event info : ' + JSON.stringify(info.event));
info.jsEvent.preventDefault();
if (info.event.url) {
window.open("https://fullcalendar.io/docs/eventClick");
}
},
});
calendar.render();
});
<div id='calendar-container'>
<div id='calendar'></div>
</div>
출력 화면 캡처
- PC, Chrome browser
- iPhone SE
- Galaxy S20 Ultra
- 일정 클릭 이벤트 callback json 데이터
- 화면 이동 등 custom 개발 가능 확인
결론
- fullcalendar PoC 기능 확인 완료
- 일정 추가, 관리, Drag & Drop 기능 활용 등 다양한 기능은 PoC 와 별개로 테스트해보기
- TODO check list
- 프로젝트 웹앱 내 웹뷰에서 다양한 모바일 기종으로 확인 필요!
- Galaxy S8+, Fold 는 텍스트 밀림 현상 확인
참고