mirror of
https://github.com/tiajinsha/JKVideo.git
synced 2026-05-07 06:06:01 +08:00
- 深色模式:补全 settings 页选项按钮、退出登录按钮主题色 - UP主主页:新增 /creator/[mid] 路由,展示 UP 主信息、粉丝数、视频列表 - bilibili.ts 新增 getUploaderInfo / getUploaderVideos API - 视频详情页 UP 主行可点击跳转主页 - 缓存管理:settings 页新增「存储」分区,显示缓存大小并支持一键清除 - 新增 utils/cache.ts(计算大小 + 清除 expo-image/文件系统缓存)
33 lines
993 B
TypeScript
33 lines
993 B
TypeScript
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
import { Platform } from 'react-native';
|
|
|
|
// expo-secure-store is only available on native platforms
|
|
let SecureStore: typeof import('expo-secure-store') | null = null;
|
|
if (Platform.OS !== 'web') {
|
|
try { SecureStore = require('expo-secure-store'); } catch {}
|
|
}
|
|
|
|
/** Read a sensitive value from SecureStore (native) or AsyncStorage (web fallback). */
|
|
export async function getSecure(key: string): Promise<string | null> {
|
|
if (SecureStore) {
|
|
return SecureStore.getItemAsync(key);
|
|
}
|
|
return AsyncStorage.getItem(key);
|
|
}
|
|
|
|
export async function setSecure(key: string, value: string): Promise<void> {
|
|
if (SecureStore) {
|
|
await SecureStore.setItemAsync(key, value);
|
|
} else {
|
|
await AsyncStorage.setItem(key, value);
|
|
}
|
|
}
|
|
|
|
export async function deleteSecure(key: string): Promise<void> {
|
|
if (SecureStore) {
|
|
await SecureStore.deleteItemAsync(key);
|
|
} else {
|
|
await AsyncStorage.removeItem(key);
|
|
}
|
|
}
|