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>
)
}