d53828c150
### 新增功能 - **Linux 官方支持**:新增 Hua.Todo.Avalonia 项目,正式适配 Linux 平台,同时支持 Windows 和 macOS - **Avalonia 桌面交互**:增加托盘菜单(显示/退出)、关闭隐藏到托盘、Windows 全局热键唤起主窗口、热键配置本地持久化 - **SQLite DateTime 兼容修复**:新增 LenientUtcDateTimeStringConverter,解决历史遗留的 DateTime 脏数据解析问题 - **用户文档完善**:新增 docs/manual/新手指南.md 和 docs/manual/用户指南.md - **部署文档**:新增 docs/manual/部署文档.md,详细说明多平台发布流程 ### 优化与修复 - **发布脚本整理**:拆分/对齐各平台发布入口,新增 publish.ps1 作为统一入口 - **Windows WebView2 优化**:数据目录调整到 %LocalAppData%\Hua.Todo\WebView2,修复 Runtime 误判问题 - **MAUI 多平台构建**:在 Windows 开发机上默认仅构建 Android + Windows 目标 - **SPA 路由回落**:修复 Release 模式下 /swagger 路径的 404 问题 - **Swagger 输出**:补齐 Dynamic API 端点,避免接口缺失 ### 文档更新 - **版本记录**:更新 v1.2.0 开发进度和功能列表 - **技术设计文档**:添加 Avalonia 项目架构和模块设计 - **项目结构**:更新 README.md 中的项目结构说明 ### 其他变更 - 新增 Directory.Build.props 和更新 Directory.Build.targets - 调整 src/Hua.Todo.Avalonia 项目配置和资源文件 - 更新 src/Hua.Todo.Web 前端资源文件 - 修复 src/Hua.Todo.Maui 相关配置和打包脚本
51 lines
1.6 KiB
C#
51 lines
1.6 KiB
C#
using System;
|
|
|
|
namespace Hua.Todo.Avalonia.Services.Platforms;
|
|
|
|
/// <summary>
|
|
/// Android 平台全局热键服务实现类
|
|
/// 由于 Android 限制全局热键,使用通知快捷方式作为替代方案
|
|
/// </summary>
|
|
public class AndroidGlobalHotKeyService : IGlobalHotKeyService
|
|
{
|
|
private Action? _callback;
|
|
|
|
/// <summary>
|
|
/// Android 平台不支持全局热键
|
|
/// </summary>
|
|
public bool IsSupported => false;
|
|
|
|
/// <summary>
|
|
/// 注册通知快捷方式作为热键替代方案
|
|
/// </summary>
|
|
/// <param name="modifiers">修饰键(如 Alt、Control;多个键用逗号分隔)。</param>
|
|
/// <param name="key">主键(如 X、C)。</param>
|
|
/// <param name="callback">热键触发时回调(不得阻塞,应自行切回 UI 线程)。</param>
|
|
public void RegisterHotKey(string modifiers, string key, Action callback)
|
|
{
|
|
_callback = callback;
|
|
Console.WriteLine($"[AndroidGlobalHotKeyService] Registering notification shortcut as hotkey alternative");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 注销快捷方式(空实现)
|
|
/// </summary>
|
|
public void UnregisterHotKey()
|
|
{
|
|
Console.WriteLine("[AndroidGlobalHotKeyService] Unregistering hotkey");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 更新快捷方式配置
|
|
/// </summary>
|
|
/// <param name="modifiers">新的修饰键。</param>
|
|
/// <param name="key">新的主键。</param>
|
|
public void UpdateHotKey(string modifiers, string key)
|
|
{
|
|
if (_callback != null)
|
|
{
|
|
RegisterHotKey(modifiers, key, _callback);
|
|
}
|
|
}
|
|
}
|