Použití rozhraní příkazového řádku winapp s tauri

Tato příručka ukazuje, jak pomocí winapp CLI s aplikací Tauri ladit pomocí identity balíčku a zabalit aplikaci do formátu MSIX.

Identita balíčku je základním konceptem modelu Windows app. Umožňuje aplikaci přistupovat k konkrétním rozhraním API systému Windows (jako jsou oznámení, zabezpečení, rozhraní API AI atd.), má čistý proces instalace a odinstalace a další.

Předpoklady

  1. Windows 11
  2. Node.js - winget install OpenJS.NodeJS --source winget
  3. winapp CLI - winget install microsoft.winappcli --source winget

1. Vytvoření nové aplikace Tauri

npm create tauri-app@latest

Postupujte podle pokynů (název Project: tauri-app, jazyk front-endu: JavaScript, Package manager: npm).

Přejděte do adresáře project a nainstalujte závislosti:

cd tauri-app
npm install

Spuštění aplikace:

npm run tauri dev

2. Aktualizace kódu pro kontrolu identity

Změny backendu (Rust)

windows Přidejte závislost. Otevřít src-tauri/Cargo.toml:

[target.'cfg(windows)'.dependencies]
windows = { version = "0.58", features = ["ApplicationModel"] }

Otevřete src-tauri/src/lib.rs a přidejte příkaz:

#[tauri::command]
fn get_package_family_name() -> String {
    #[cfg(target_os = "windows")]
    {
        use windows::ApplicationModel::Package;
        match Package::Current() {
            Ok(package) => {
                match package.Id() {
                    Ok(id) => match id.FamilyName() {
                        Ok(name) => name.to_string(),
                        Err(_) => "Error retrieving Family Name".to_string(),
                    },
                    Err(_) => "Error retrieving Package ID".to_string(),
                }
            }
            Err(_) => "No package identity".to_string(),
        }
    }
    #[cfg(not(target_os = "windows"))]
    {
        "Not running on Windows".to_string()
    }
}

Zaregistrujte příkaz ve run funkci:

pub fn run() {
    tauri::Builder::default()
        .plugin(tauri_plugin_opener::init())
        .invoke_handler(tauri::generate_handler![greet, get_package_family_name])
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

Změny front-endu (JavaScript)

V src/index.html přidejte odstavec, aby se zobrazil výsledek.

<p id="pfn-msg"></p>

Vyvolejte příkaz src/main.js.

const { invoke } = window.__TAURI__.core;

async function checkPackageIdentity() {
  const pfn = await invoke("get_package_family_name");
  const pfnMsgEl = document.querySelector("#pfn-msg");

  if (pfn !== "No package identity" && !pfn.startsWith("Error")) {
    pfnMsgEl.textContent = `Package family name: ${pfn}`;
  } else {
    pfnMsgEl.textContent = `Not running with package identity`;
  }
}

window.addEventListener("DOMContentLoaded", () => {
  checkPackageIdentity();
});

Spusťte aplikaci, abyste potvrdili, že se zobrazuje "Není spuštěno s identitou balíčku".

npm run tauri dev

3. Inicializace project pomocí rozhraní příkazového řádku winapp

winapp init

Po zobrazení výzvy:

  • Název balíčku: Stisknutím klávesy Enter přijměte výchozí hodnotu (tauri-app).
  • Publisher název: Stisknutím klávesy Enter přijměte výchozí hodnotu nebo zadejte své jméno.
  • Verze: Stisknutím klávesy Enter přijměte verzi 1.0.0.0.
  • Vstupní bod: Stisknutím klávesy Enter přijměte výchozí (tauri-app.exe)
  • Instalační sady SDK: Vyberte "Nenastavovat sady SDK"

4. Ladění s identitou uživatele

Přidejte skript do package.json:

"scripts": {
    "tauri:dev:withidentity": "cargo build --manifest-path src-tauri/Cargo.toml && winapp create-debug-identity src-tauri/target/debug/tauri-app.exe && .\\src-tauri\\target\\debug\\tauri-app.exe"
}

Spusťte ho:

npm run tauri:dev:withidentity

Měla by se zobrazit aplikace s názvem rodiny balíčků.

5. Balíček s MSIX

  1. Sestavení pro vydání:

    npm run tauri build
    
  2. Příprava adresáře balíčku:

    mkdir dist
    copy .\src-tauri\target\release\tauri-app.exe .\dist\
    
  3. Vygenerování vývojového certifikátu:

    winapp cert generate --if-exists skip
    
  4. Balíček a podepsání:

    winapp pack .\dist --cert .\devcert.pfx
    
  5. Nainstalujte certifikát (spusťte ho jako správce):

    winapp cert install .\devcert.pfx
    
  6. Nainstalujte poklikáním na vygenerovaný .msix soubor. Spusťte z nabídky Start.