tauri-plugin-deeprespond-im 1.0.0-alpha

深应智能 IM 的 Tauri 插件:本地存储、安全存储、窗口间的锁与消息、系统事件、通知、角标、文件
1
2
3
4
5
6
7
8
9
10
11
12
13
//! macOS:程序坞图标上的数字(Tauri 的 set_badge_count,即 NSDockTile.badgeLabel)。程序坞图标属于整个应用,
//! 经任意一个窗口设置都一样(含引擎窗口,所以全部界面窗口都关闭时也能显示)。

use tauri::{AppHandle, Manager, Runtime};

pub(super) fn apply<R: Runtime>(app: &AppHandle<R>, count: Option<u64>) {
    let Some(window) = app.webview_windows().into_values().next() else { return };
    // 0 要传 None:Tauri 会把 Some(0) 显示成“0”
    let count = count.filter(|c| *c > 0).map(|c| c.min(i64::MAX as u64) as i64);
    if let Err(err) = window.set_badge_count(count) {
        log::debug!("程序坞角标设置失败:{err}");
    }
}