fix(app): Web 平台兼容性修复 + 字体资源 + API base URL
- 添加 Web/Windows 平台支持 (flutter create --platforms) - 下载字体资源 (NotoSansSC/Caveat Regular+Bold) - Isar 3.x Web 不兼容:添加 kIsWeb 守卫,Web 上跳过 Isar 初始化 - IsarJournalRepository: instance 返回 nullable,Web 上使用 RemoteJournalRepository - SyncEngine: persistPendingQueue/restorePendingQueue Web 安全 - SettingsBloc: 从 RepositoryProvider 改为 ListenableProvider - ApiClient base URL: 8080 → 3000 匹配后端端口 - Isar .g.dart: 64 位 ID 替换为 JS 安全范围值
This commit is contained in:
@@ -251,7 +251,8 @@ class SyncEngine {
|
||||
/// 替换策略:先清空旧的持久化数据,再写入当前队列。
|
||||
/// 在 app 退出、isolate 暂停、或同步完成后调用。
|
||||
Future<void> persistPendingQueue() async {
|
||||
final isar = IsarDatabase.instance;
|
||||
if (!IsarDatabase.isAvailable) return;
|
||||
final isar = IsarDatabase.instance!;
|
||||
final ops = snapshot;
|
||||
|
||||
await isar.writeTxn(() async {
|
||||
@@ -269,8 +270,10 @@ class SyncEngine {
|
||||
/// 从 Isar 恢复持久化队列到内存
|
||||
///
|
||||
/// 在 app 启动时调用,恢复上次退出时未同步的操作。
|
||||
/// Web 平台上 Isar 不可用,跳过恢复。
|
||||
Future<void> restorePendingQueue() async {
|
||||
final isar = IsarDatabase.instance;
|
||||
if (!IsarDatabase.isAvailable) return;
|
||||
final isar = IsarDatabase.instance!;
|
||||
final persisted = await isar.pendingOperationCollections
|
||||
.where()
|
||||
.anyIsarId()
|
||||
|
||||
Reference in New Issue
Block a user