クリップボードに保存されているテキストデータを読み取る方法を解説します。
前提条件
プラグインのインストールが必要です。
npm run tauri add clipboard-manager
Permissions (権限) の設定
src-tauri/capabilities/default.json に以下の権限を追加します。
{
"permissions": [
"clipboard-manager:default",
"clipboard-manager:allow-read-text",
...
]
}
1. フロントエンドから作成する (TypeScript)
@tauri-apps/plugin-clipboard-manager の readText() 関数を使用します。クリップボードの中身がテキストでない場合(画像など)は null が返る可能性があります。
import { readText } from '@tauri-apps/plugin-clipboard-manager';
async function getClipboardContent() {
try {
const text = await readText();
console.log('Clipboard content:', text);
return text;
} catch (error) {
console.error('読み取りに失敗しました:', error);
return null;
}
}
2. バックエンドから作成する (Rust)
Rust 側でも tauri_plugin_clipboard_manager::ClipboardExt を使用してクリップボードを読み取ることができます。
Rust 実装
use tauri::command;
use tauri_plugin_clipboard_manager::ClipboardExt;
#[command]
fn read_clipboard_from_rust(app: tauri::AppHandle) -> Result<String, String> {
app.clipboard()
.read_text()
.map_err(|e| e.to_string())
}
#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
tauri::Builder::default()
.plugin(tauri_plugin_clipboard_manager::init())
.invoke_handler(tauri::generate_handler![read_clipboard_from_rust])
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
フロントエンドからの呼び出し
import { invoke } from '@tauri-apps/api/core';
invoke<string>('read_clipboard_from_rust')
.then(text => console.log('Clipboard from Rust:', text))
.catch(console.error);