feat: 添加 Tauri 桌面应用
- 创建 packages/desktop 模块 - 实现 Tauri 2.0 + React 桌面应用 - 复用 Web 前端代码 - 添加系统托盘功能 - 实现本地文件访问命令 - 配置 Vite + Tauri 集成 - 更新 .gitignore 添加 Rust/Tauri 相关规则
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
import { invoke } from '@tauri-apps/api/core';
|
||||
|
||||
export interface AppInfo {
|
||||
name: string;
|
||||
version: string;
|
||||
tauri_version: string;
|
||||
}
|
||||
|
||||
export interface FileContent {
|
||||
path: string;
|
||||
content: string;
|
||||
size: number;
|
||||
}
|
||||
|
||||
export interface DirectoryEntry {
|
||||
name: string;
|
||||
path: string;
|
||||
is_dir: boolean;
|
||||
size: number;
|
||||
}
|
||||
|
||||
export async function getAppInfo(): Promise<AppInfo> {
|
||||
return invoke('get_app_info');
|
||||
}
|
||||
|
||||
export async function openDirectoryDialog(): Promise<string | null> {
|
||||
return invoke('open_directory_dialog');
|
||||
}
|
||||
|
||||
export async function readLocalFile(path: string): Promise<FileContent> {
|
||||
return invoke('read_local_file', { path });
|
||||
}
|
||||
|
||||
export async function listDirectory(path: string): Promise<DirectoryEntry[]> {
|
||||
return invoke('list_directory', { path });
|
||||
}
|
||||
|
||||
export function isTauri(): boolean {
|
||||
return typeof window !== 'undefined' && '__TAURI__' in window;
|
||||
}
|
||||
Reference in New Issue
Block a user