アプリ自身のバージョン番号を取得する

Recipe ID: sys-014

tauri.conf.json に定義されたアプリケーションのバージョン番号(version フィールド)を取得する方法を解説します。
「設定画面」や「バージョン情報」ダイアログでの表示に利用されます。

前提条件

@tauri-apps/api パッケージが必要です(Tauri v2 プロジェクト作成時に通常はインストールされています)。

1. フロントエンドから作成する (TypeScript)

@tauri-apps/api/app パッケージの getVersion() 関数を使用します。これは非同期関数として提供されています。

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

async function showAppInfo() {
  try {
    const appName = await getName();
    const appVersion = await getVersion();
    
    console.log(`App Name: ${appName}`);
    console.log(`Version: ${appVersion}`); 
    // 例: "1.0.0"
  } catch (error) {
    console.error(error);
  }
}

showAppInfo();

2. バックエンドから作成する (Rust)

Rust 側(バックエンド)でも、AppHandle を通じてアプリケーションのパッケージ情報を取得できます。

Rust 実装

use tauri::command;

#[command]
fn get_app_version(app: tauri::AppHandle) -> String {
    // package_info() からバージョン情報を取得
    app.package_info().version.to_string()
}

#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
    tauri::Builder::default()
        .invoke_handler(tauri::generate_handler![get_app_version])
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

フロントエンドからの呼び出し

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

invoke<string>('get_app_version')
  .then(version => console.log(`Version from Rust: ${version}`))
  .catch(console.error);