跳到正文
灵动桌面框架
Esc
本栏目菜单

Opener 打开插件

Opener 插件用于打开外部 URL、文件,或在文件管理器中定位文件。

框架已注册插件(tauri_plugin_opener::init())并授予 opener:default 权限,模板前端目前没有调用它,需要时直接 import 即可。

默认权限放行范围

opener:default 只包含以下几项:

能力是否默认可用
openUrl 打开 http:// / https:// / mailto: / tel: 链接
revealItemInDir 在文件管理器中定位文件
openPath 用默认程序打开本地文件(需额外授权,见下文)

打开 URL

import { openUrl } from '@tauri-apps/plugin-opener'

// 在默认浏览器中打开
await openUrl('https://tauri.ruoyi.plus/')

打开文件

import { openPath } from '@tauri-apps/plugin-opener'

// 用系统默认程序打开文件
await openPath('/path/to/document.pdf')

openPath 不在 opener:default 中,直接调用会被权限拦截。需要在 src-tauri/capabilities/default.json 的 permissions 里追加带作用域的授权,只放行确实需要的路径:

{
  "identifier": "opener:allow-open-path",
  "allow": [{ "path": "$APPDATA/**" }]
}

在文件管理器中定位

import { revealItemInDir } from '@tauri-apps/plugin-opener'

// 打开所在目录并选中该文件
await revealItemInDir('/path/to/document.pdf')

实际使用场景

import { openUrl } from '@tauri-apps/plugin-opener'
import { Button } from 'antd'
import { ExternalLink } from 'lucide-react'

function AboutPage() {
  return (
    <div>
      <Button
        icon={<ExternalLink size={14} />}
        onClick={() => openUrl('https://tauri.ruoyi.plus/')}
      >
        访问官网
      </Button>
    </div>
  )
}