昨日説明したやつの延長線上なんですが
Overview として以下に Tauri v2 の Plugin の情報があります。
が、全てを紹介していくのも当然面倒極まりないので、便利そう...?なものをいくつかピックアップしてみました。
Clipboard
これは名の通り Clipboard を管理するための Plugin です。
writeText
とreadText
というメソッドを使うことで、クリップボードの書き込み、読み込みが出来ます。
import { writeText, readText } from "@tauri-apps/plugin-clipboard-manager";
await writeText("Hello, clipboard!");
console.log(await readText());
// おおよそ "Hello, clipboard!" になるだろう。
Dialog
様々なダイアログを表示するための Plugin です。
実演した方がはやいでしょう。
import { confirm } from "@tauri-apps/plugin-dialog";
const result = await confirm("進めちゃうよ!", {
title: "かくにん!",
kind: "warning",
});
console.log(result);
雑にやっちゃうとこんな感じのコードで、いい感じのダイアログが出てきます。
...あれ? TypeScript デフォのalert
とかconfirm
とか...?
考えてみればあそこらへんは同期処理なので、もしかしたら正式にはこっちを使う方がいいのかもしれませんね。
なにより、デフォルトのものは WebView のデザインなので少しダサいというかなんというかごにょごにょ...
File System
前述なのでほぼ省略です。
ファイルの作成や削除、読み込み、書き込みが出来ます。
以外にもコピーとかなんかそこらへんも出来ちゃいます。
更にはwatch
を使うことで、ファイルの変更がされたかどうかを監視することもできます。
これなんか凄そうですよね。
HTTP Client
記事を書きながら調べているのですが、Dialog
同様「ほほ~...」ってなりました。
HTTP リクエストを送るための Plugin です。
TypeScript ではデフォルトでfetch
というものがあり、これを使うことで HTTP リクエストを送ることが出来ます。
同様のものとしてこのHTTP Client
があり、関数の名前も同じくfetch
です。
何が違うかというと、権限設定によってリクエストできるページや、出来ないページを設定することが出来るという点です。
それ以外は基本デフォルトfetch
と同じなのですが、セキュリティを意識する上ではこちらのHTTP Client
を使う方がいいかもしれませんね。
Single Instance
これは TypeScript 側でどうのこーのみたいなプラグインではありませんが、アプリケーションの起動を制御するための Plugin です。
どういうことかというと、アプリケーションが複数起動されるのを防ぐための Plugin です。
例えば、アプリケーションが複数起動されると、データの競合が起こる可能性があるので、それを防ぐために使います。
Store
かなり便利な Plugin です。
これは、何かしらのデータを保存したいときに使います。
import { load } from "@tauri-apps/plugin-store";
const store = await load("anything-store", { autoSave: false });
await store.set("username", "Harold");
const val = await store.get<string>("username");
console.log(val);
// Harold が出力されるはず
await store.save();
このように、load
でストアを読み込み、set
で値を設定、get
で値を取得、save
で保存することが出来ます。
このストアに保存したデータは Rust 側でも取得することが出来て、多分セーブデータとかに使えそうですね。
中身は良くも悪くも JSON なので...まぁ、うん。
まとめ
このように、様々なプラグインがデフォルトで用意されています。
これを活用することでより幅広い表現が出来ると思うのですが...アイデアは思いつきましたか?
一番上のリンクのページを見てもらえばわかる通り、まだたくさんあるので気になった方は片っ端から見てみてください。
さーて次回はついに主人公を配置します。
これだけで一気に「おぉ...」ってなるので...(代わりにコードはえぐ汚いが)