스플래시 화면 최적화: 네이티브 스플래시 화면 제거 및 Capacitor 스플래시 화면 개선
This commit is contained in:
41
src/App.tsx
41
src/App.tsx
@@ -1,6 +1,7 @@
|
||||
|
||||
import React, { useEffect } from 'react';
|
||||
import { BrowserRouter as Router, Route, Routes } from 'react-router-dom';
|
||||
import { SplashScreen } from '@capacitor/splash-screen';
|
||||
import './App.css';
|
||||
import Login from './pages/Login';
|
||||
import Register from './pages/Register';
|
||||
@@ -20,8 +21,6 @@ import PaymentMethods from './pages/PaymentMethods';
|
||||
import Settings from './pages/Settings';
|
||||
import { BudgetProvider } from './contexts/BudgetContext';
|
||||
import PrivateRoute from './components/auth/PrivateRoute';
|
||||
import { SplashScreen } from '@capacitor/splash-screen';
|
||||
|
||||
// 전역 오류 핸들러
|
||||
const handleError = (error: any) => {
|
||||
console.error('앱 오류 발생:', error);
|
||||
@@ -73,12 +72,40 @@ class ErrorBoundary extends React.Component<
|
||||
}
|
||||
|
||||
function App() {
|
||||
// 앱 시작 시 스플래시 화면 초기화
|
||||
// 앱 로딩이 완료되었을 때 스플래시 화면을 숨김
|
||||
useEffect(() => {
|
||||
// 스플래시 화면 표시 시간 설정 (3초)
|
||||
setTimeout(() => {
|
||||
SplashScreen.hide();
|
||||
}, 3000);
|
||||
// 웹뷰 콘텐츠가 완전히 로드되었을 때만 스플래시 화면을 숨김
|
||||
const onAppReady = async () => {
|
||||
try {
|
||||
// 1초 후에 스플래시 화면을 숨김 (콘텐츠가 완전히 로드될 시간 확보)
|
||||
setTimeout(async () => {
|
||||
try {
|
||||
await SplashScreen.hide();
|
||||
console.log('스플래시 화면 숨김 성공');
|
||||
} catch (err) {
|
||||
console.error('스플래시 화면 숨김 오류:', err);
|
||||
}
|
||||
}, 1000);
|
||||
} catch (err) {
|
||||
console.error('앱 준비 오류:', err);
|
||||
}
|
||||
};
|
||||
|
||||
// 앱 준비 함수 실행
|
||||
onAppReady();
|
||||
|
||||
// 추가 보호장치: 페이지 로드 시 다시 실행
|
||||
const handleLoad = () => {
|
||||
setTimeout(() => {
|
||||
SplashScreen.hide().catch(() => {});
|
||||
}, 1000);
|
||||
};
|
||||
|
||||
window.addEventListener('load', handleLoad);
|
||||
|
||||
return () => {
|
||||
window.removeEventListener('load', handleLoad);
|
||||
};
|
||||
}, []);
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user