搭建 .NET 8 WPF 应用骨架,加入系统托盘、单实例启动与主控制面板。 实现本地 HTTP /notify 消息接入、频道严格匹配、免打扰、熔断限流与历史持久化。 补充弹窗样式配置、队列/推挤/替换展示、溢出处理、应用图标和项目文档。 Initial-Commit: true
37 lines
840 B
Markdown
37 lines
840 B
Markdown
# Omni-Notify
|
|
|
|
Omni-Notify is a Windows 10+ WPF desktop app for receiving local structured messages and showing configurable, non-interactive visual popups.
|
|
|
|
## Tech Stack
|
|
|
|
- .NET 8 WPF for the desktop UI and popup windows
|
|
- Windows Forms `NotifyIcon` for the system tray entry
|
|
- Built-in `HttpListener` for local message intake
|
|
- JSON persistence under `%LOCALAPPDATA%\OmniNotify\state.json`
|
|
|
|
## Local Message API
|
|
|
|
When the app is running, it listens by default on:
|
|
|
|
```text
|
|
http://127.0.0.1:19845/notify
|
|
```
|
|
|
|
Send a POST request with UTF-8 JSON:
|
|
|
|
```json
|
|
{
|
|
"channel": "default",
|
|
"title": "Build finished",
|
|
"body": "The nightly job completed successfully."
|
|
}
|
|
```
|
|
|
|
Channels must be created in the control panel first. Unknown channels are blocked and recorded in history as `IllegalChannel`.
|
|
|
|
## Build
|
|
|
|
```powershell
|
|
dotnet build
|
|
```
|