Condividi tramite


Uso della CLI di winapp con Tauri

Questa guida illustra come usare l'interfaccia della riga di comando di winapp con un'applicazione Tauri per eseguire il debug con l'identità del pacchetto e creare un pacchetto dell'applicazione come MSIX.

L'identità del pacchetto è un concetto di base nel modello di Windows app. Consente all'applicazione di access API Windows specifiche (ad esempio Notifiche, Sicurezza, API di intelligenza artificiale e così via), avere un'esperienza di installazione/disinstallazione pulita e altro ancora.

Prerequisiti

  1. Windows 11
  2. Node.js - winget install OpenJS.NodeJS --source winget
  3. Interfaccia della riga di comando di winapp - winget install microsoft.winappcli --source winget

1. Creare una nuova app Tauri

npm create tauri-app@latest

Seguire le istruzioni (nome Project: tauri-app, lingua front-end: JavaScript, Package manager: npm).

Naviga nella directory del tuo progetto e installa le tue dipendenze.

cd tauri-app
npm install

Eseguire l'app:

npm run tauri dev

2. Aggiornare il codice per verificare l'identità

Modifiche al back-end (Rust)

Aggiungere la windows dipendenza. Aprire src-tauri/Cargo.toml:

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

Aprire src-tauri/src/lib.rs e aggiungere il comando :

#[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()
    }
}

Registrare il comando nella run funzione :

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

Modifiche front-end (JavaScript)

In src/index.htmlaggiungere un paragrafo per visualizzare il risultato:

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

In src/main.js invocare il comando:

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

Esegui l'app per confermare che mostra "Non è in esecuzione con l'identità del pacchetto".

npm run tauri dev

3. Inizializzare il progetto con il CLI di winapp

winapp init

Quando richiesto:

  • Nome pacchetto: premere INVIO per accettare il valore predefinito (tauri-app)
  • Publisher nome: premere INVIO per accettare il valore predefinito o immettere il nome
  • Versione: premere INVIO per accettare 1.0.0.0
  • Punto di ingresso: premere INVIO per accettare il valore predefinito (tauri-app.exe)
  • SDK di installazione: selezionare "Non configurare GLI SDK"

4. Eseguire il debug con l'identità

Aggiungere uno script a 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"
}

Eseguilo:

npm run tauri:dev:withidentity

Dovresti vedere l'app visualizzare il nome di famiglia del pacchetto.

5. Pacchetto con MSIX

  1. Compilazione per il rilascio:

    npm run tauri build
    
  2. Preparare la directory del pacchetto:

    mkdir dist
    copy .\src-tauri\target\release\tauri-app.exe .\dist\
    
  3. Generare un certificato di sviluppo:

    winapp cert generate --if-exists skip
    
  4. Pacchetto e firma:

    winapp pack .\dist --cert .\devcert.pfx
    
  5. Installare il certificato (esegui come amministratore):

    winapp cert install .\devcert.pfx
    
  6. Eseguire l'installazione facendo doppio clic sul file generato .msix . Avviare dal menu Start.