최근 Ionic 앱을 개발하면서 데이터를 저장하고자 하는 경우가 많다. 그 중 localForage-cordovaSQLiteDriver
를 사용하여 네이티브 스토리지를 활용하는 방법에 대해 알아보겠다.
우선, Ionic 프로젝트에 필요한 패키지를 설치해야 한다. 다음 명령어를 사용하여 설치할 수 있다.
npm install @ionic/storage cordova-sqlite-storage localforage-cordovasqlitedriver
그런 다음, useStorage.ts
라는 파일을 만들었다.
import { useEffect, useState } from "react";
import { Storage, Drivers } from "@ionic/storage";
import CordovaSQLiteDriver from 'localforage-cordovasqlitedriver';
export function useStorage() {
const [storage, setStorage] = useState<Storage>();
useEffect(() => {
const initStorage = async () => {
const newStorage = new Storage({
name: 'your-storage-name',
driverOrder: [CordovaSQLiteDriver._driver, Drivers.IndexedDB, Drivers.LocalStorage]
});
await newStorage.defineDriver(CordovaSQLiteDriver);
await newStorage.create();
setStorage(newStorage);
}
initStorage();
}, []);
const getData = async (key: string): Promise<any | null> => {
if (!storage) return null;
try {
const data = await storage.get(key);
return data;
} catch (error) {
console.error(`Error getting data from storage for key: ${key}`, error);
return null;
}
};
const setData = async (key: string, data: any): Promise<void> => {
if (!storage) return;
try {
await storage.set(key, data);
} catch (error) {
console.error(`Error storing data in storage for key: ${key}`, error);
}
};
return { getData, setData };
}
사용하고자 하는 곳에서 불러와서 사용하면 된다.
import { useStorage } from "./hooks/useStorage";
// ...
const { getData, setData } = useStorage();
'Study note > WebApp' 카테고리의 다른 글
iOS 앱 심사: 3수 만에 accepted (0) | 2024.05.15 |
---|---|
풋살할 때 밸런스 있게 팀 짜주는 앱 출시: 팀짜요 (2) | 2024.05.07 |
Apple Developer에서 Provisioning Profiles 만들기 (0) | 2024.04.17 |
Xcode 없이 Distribution Certificate 생성하기 (0) | 2024.04.17 |
React Native Study Note - Redux 패턴 (0) | 2020.12.10 |