tauri2应用添加系统托盘Tray

官网文档:https://v2.tauri.app/learn/system-tray/

有两种方式可以添加系统托盘,一种是在js中,一种是在rust中,官方都有使用案例,其中要注意:

要记得在配置文件中添加这个特性。

这里我记录一下在js中添加托盘后,图标不显示问题:

可能是因为我使用了defaultWindowIcon图标作为托盘图标?但是官方说是可以的:

后来我重启了项目就显示了,我这里是通过js添加的托盘,这里的图标路径是相对于src-tauri的:

我的案例代码:

javascript 复制代码
<template>
    <h1
        class="cardTitle"
        @click="openUrl('https://v2.tauri.app/learn/system-tray/')"
    >
        tray
    </h1>
    <p>
        The tray module provides utilities for working with the system tray.
        This package is also accessible
    </p>
    <div class="cardBox">
        <el-tooltip content="create tray" placement="bottom">
            <el-button>{{ t('waitDev') }}</el-button>
        </el-tooltip>
    </div>
    <div class="codeDemo">
        <h2>发送通知</h2>
        <p class="description">调用系统通知API发送消息通知</p>
        <CodeEdit
            lang="javascript"
            :code="Codes.notification.trim()"
            :disabled="true"
        />
    </div>
</template>

<script setup lang="ts">
import { openUrl } from '@/utils/common'
import { TrayIcon } from '@tauri-apps/api/tray'
import { Menu } from '@tauri-apps/api/menu'
import { useI18n } from 'vue-i18n'
import Codes from '@/utils/codes'
// import ppIcon from '@/assets/images/pakeplus.png'
import { onMounted } from 'vue'

const { t } = useI18n()

const textarea = defineModel('textarea', {
    type: String,
    default: '',
})

let tray: any = null

const createTray = async () => {
    const menu = await Menu.new({
        items: [
            {
                id: 'quit',
                text: 'Quit',
                action: () => {
                    console.log('quit pressed')
                },
            },
        ],
    })
    const options = {
        menu,
        menuOnLeftClick: true,
        icon: 'icons/icon.png',
    }
    tray = await TrayIcon.new(options)
}

onMounted(async () => {
    createTray()
})
</script>

<style scoped lang="scss"></style>
相关推荐
特立独行的猫a6 天前
用仓颉写桌面应用的“薄壳框架”cj-tauri ,以及它的 AI 对话客户端 ai-chat
人工智能·harmonyos·tauri·仓颉·鸿蒙pc·cj-tarui·ai客户端
特立独行的猫a7 天前
仓颉语言cj-tauri 跨端开发框架实战:给鸿蒙侧加一个「读设备电量」的原生能力
ui·harmonyos·tauri·1024程序员节·仓颉·鸿蒙pc
特立独行的猫a9 天前
AI时代的应用开发神器:cj-tauri 已支持鸿蒙 PC,第一次的踩坑记录
ui·harmonyos·tauri·仓颉·鸿蒙pc·cj-tauri
weixin_3823952314 天前
Web 应用打包成 EXE 有哪些加密方案?2026 年选型对比与推荐
tauri·源码保护
特立独行的猫a14 天前
仓颉语言GUI开发实战:用仓颉写串口/网络二合一调试助手
网络·ui·gui·harmonyos·tauri·仓颉
特立独行的猫a15 天前
仓颉语言UI开发实战:我用仓颉写了个桌面版力扣
算法·leetcode·ui·tauri·仓颉·cj-tarui
I'm Jie16 天前
Rhost v2.0.0 版本发布!!!不止 SSH 终端,内置 AI Agent 支持自然语言操作远程服务器
运维·服务器·rust·开源·ssh·tauri·finalshell
特立独行的猫a17 天前
用仓颉写桌面应用:从 npx 建工程到串口实时示波器
开源·harmonyos·tauri·仓颉·cj-tarui