날짜 형식 처리 안정성 강화 및 트랜잭션 삭제 시 앱 먹통 문제 해결
This commit is contained in:
43
src/plugins/imagePlugin.ts
Normal file
43
src/plugins/imagePlugin.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import { Capacitor, registerPlugin } from '@capacitor/core';
|
||||
|
||||
/**
|
||||
* 네이티브 이미지 플러그인 인터페이스
|
||||
*/
|
||||
export interface ImagePluginInterface {
|
||||
getResourceImage(options: { resourceName: string }): Promise<{ base64Image: string }>;
|
||||
}
|
||||
|
||||
// 네이티브 플러그인을 사용할 수 없을 때 대체할 웹 구현
|
||||
const ImagePluginWeb: ImagePluginInterface = {
|
||||
async getResourceImage(options: { resourceName: string }): Promise<{ base64Image: string }> {
|
||||
// 웹에서는 일반 경로 사용
|
||||
return { base64Image: `/${options.resourceName}.png` };
|
||||
},
|
||||
};
|
||||
|
||||
// 네이티브 플러그인 등록
|
||||
const ImagePlugin = registerPlugin<ImagePluginInterface>('ImagePlugin', {
|
||||
web: ImagePluginWeb,
|
||||
});
|
||||
|
||||
/**
|
||||
* 이미지 리소스를 가져오는 함수
|
||||
*
|
||||
* @param resourceName 리소스 이름 (확장자 제외)
|
||||
* @returns 플랫폼에 맞는 이미지 경로 또는 Base64 문자열
|
||||
*/
|
||||
export async function getResourceImage(resourceName: string): Promise<string> {
|
||||
try {
|
||||
if (Capacitor.isNativePlatform()) {
|
||||
// 네이티브 환경에서는 플러그인 사용
|
||||
const result = await ImagePlugin.getResourceImage({ resourceName });
|
||||
return result.base64Image;
|
||||
} else {
|
||||
// 웹 환경에서는 일반 URL 반환
|
||||
return `/${resourceName}.png`;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('이미지 리소스 로드 오류:', error);
|
||||
return `/${resourceName}.png`; // 오류 시 기본 경로 사용
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user