You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为macOS创建支持拖入Dock图标的文件/文件夹的Tauri应用?

在macOS的Tauri应用中实现Dock图标接收拖放文件/文件夹的方法

当然可以实现,Tauri通过配置文件和内置API就能完成这个功能,具体步骤如下:

1. 配置应用支持的文件类型

打开项目根目录的tauri.conf.json,找到tauri.bundle.macOS节点,添加documentTypes数组来定义应用支持的文件/文件夹类型,这对应Electron里的CFBundleTypeExtensions配置:

{
  "tauri": {
    "bundle": {
      "macOS": {
        "documentTypes": [
          // 支持所有文件
          {
            "name": "任意文件",
            "extensions": ["*"],
            "role": "Editor"
          },
          // 支持文件夹
          {
            "name": "文件夹",
            "extensions": ["public.folder"],
            "role": "Editor"
          }
        ]
      }
    }
  }
}

字段说明:

  • name:该文件类型的显示名称,会在系统的文件关联设置中出现
  • extensions:指定支持的扩展名或系统UTI(Uniform Type Identifier),*代表所有文件,public.folder是系统定义的文件夹标识
  • role:应用对该文件类型的角色,可选值包括Editor(可编辑)、Viewer(仅查看)等

2. 监听拖放事件处理文件

配置完成后,需要在前端代码中监听应用的open事件,当用户将文件拖放到Dock图标时,应用会收到这些文件的路径:

import { app } from '@tauri-apps/api';

// 监听文件打开/拖放事件
app.listen('open', (event) => {
  const filePaths = event.payload;
  // 这里处理收到的文件/文件夹路径
  console.log('接收的文件路径:', filePaths);
});

3. 注意事项

  • 配置修改后必须重新打包应用,bundle配置仅在打包阶段生效
  • 如果需要支持特定格式,可将extensions替换为具体扩展名(如["txt", "md"])或对应的UTI(如public.plain-text)
  • 若应用需要访问用户的隐私目录(如Documents),需在tauri.bundle.macOS.entitlements中添加对应的权限声明

内容的提问来源于stack exchange,提问作者Johann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 09:36:10