feat: 重构 TodoList 架构,新增动态 API 与 MAUI 内嵌 Web 服务

feat:优化交互逻辑,优化发布流程
This commit is contained in:
ShaoHua
2026-04-04 22:11:18 +08:00
parent 81c649cb23
commit 1412ce2695
91 changed files with 3612 additions and 2489 deletions
+60
View File
@@ -0,0 +1,60 @@
using Microsoft.Maui.ApplicationModel;
using System;
using System.Reflection;
namespace TodoList.Maui.Services;
public static class AppMetadata
{
private const string AppNameText = "\u5F85\u529E\u4E8B\u9879";
public static string AppName => AppNameText;
public static string? GetDisplayVersion()
{
// 优先使用Assembly版本
var asmVersion = Assembly.GetExecutingAssembly().GetName().Version;
if (asmVersion != null)
{
// 只返回主版本.次版本.修订版本 (如: 1.0.4)
return $"{asmVersion.Major}.{asmVersion.Minor}.{asmVersion.Build}";
}
// 回退到AppInfo
var versionString = AppInfo.Current.VersionString?.Trim();
if (string.IsNullOrWhiteSpace(versionString))
{
return null;
}
if (!Version.TryParse(versionString, out var parsed))
{
return null;
}
return $"{parsed.Major}.{parsed.Minor}.{parsed.Build}";
}
public static string GetDisplayTitle()
{
var version = GetDisplayVersion();
return string.IsNullOrWhiteSpace(version) ? AppName : $"{AppName} v{version}";
}
public static string GetTitleBarVersionText()
{
var version = GetDisplayVersion();
return string.IsNullOrWhiteSpace(version) ? AppNameText : $"{AppNameText} v{version}";
}
public static string GetWindowTitle()
{
return GetTitleBarVersionText();
}
public static string GetTrayTooltipText()
{
var text = GetDisplayTitle();
return text.Length > 63 ? text[..63] : text;
}
}