Publicado Tauri 2.0.0-alpha.4

Se ha publicado una nueva versión alpha para la 2.0. Esta versión incluye todos los cambios de la próxima versión Tauri 1.3, un cambio de ruptura importante en el cliente HTTP y capacidades móviles nativas para los plugins de Tauri.
Actualizando dependencias
Sección titulada “Actualizando dependencias”Asegúrate de actualizar tanto las dependencias de npm como las de Cargo a la última versión alpha. Puedes actualizar las dependencias de npm con:
npm install @tauri-apps/cli@next @tauri-apps/api@nextyarn upgrade @tauri-apps/cli@next @tauri-apps/api@nextpnpm update @tauri-apps/cli@next @tauri-apps/api@nextcargo add tauri@2.0.0-alpha.4cargo add tauri-build@2.0.0-alpha.2 --buildcargo install tauri-cli --version "^2.0.0-alpha" --lockedRecrea los proyectos móviles para usar las nuevas funciones:
rm -r src-tauri/gentauri android inittauri ios initCambio de ruptura en el cliente HTTP
Sección titulada “Cambio de ruptura en el cliente HTTP”El cliente HTTP predeterminado que usa attohttpc se eliminó debido a problemas con el proxy del servidor de desarrollo en Windows. Se eliminaron todas las flags de características reqwest-* porque reqwest es ahora el cliente que usamos.
Funcionalidad móvil nativa para plugins de Tauri
Sección titulada “Funcionalidad móvil nativa para plugins de Tauri”Un plugin de Tauri ahora puede acceder a iOS vía Swift y a las API de Android vía código Kotlin o Java, simplificando el uso de interfaces de la plataforma como la cámara o la geolocalización. Para inicializar los proyectos de iOS y Android en un plugin existente, ejecuta tauri plugin ios add y tauri plugin android add. Los nuevos plugins incluyen automáticamente toda la configuración necesaria para escribir código móvil nativo.
Aquí tienes un ejemplo de un plugin que toma un valor de cadena y resuelve un objeto:
Android plugin:
package com.plugin.example
import android.app.Activityimport app.tauri.annotation.Commandimport app.tauri.annotation.TauriPluginimport app.tauri.plugin.JSObjectimport app.tauri.plugin.Pluginimport app.tauri.plugin.Invoke
@TauriPluginclass ExamplePlugin(private val activity: Activity): Plugin(activity) { @Command fun ping(invoke: Invoke) { val value = invoke.getString("value") ?: "" val ret = JSObject() ret.put("value", value) invoke.resolve(ret) }}iOS plugin:
import UIKitimport WebKitimport Tauri
class ExamplePlugin: Plugin { @objc public func ping(_ invoke: Invoke) throws { let value = invoke.getString("value") invoke.resolve(["value": value as Any]) }}
@_cdecl("init_plugin_example")func initPlugin(name: SRString, webview: WKWebView?) { Tauri.registerPlugin(webview: webview, name: name.toString(), plugin: ExamplePlugin())}Rust code to initialize the plugin:
use tauri::{ plugin::{Builder, TauriPlugin}, Manager, Runtime,};
#[cfg(target_os = "ios")]tauri::ios_plugin_binding!(init_plugin_example);
pub fn init<R: Runtime>() -> TauriPlugin<R> { Builder::new("example") .setup(|app, api| { #[cfg(target_os = "android")] api.register_android_plugin("com.plugin.example", "ExamplePlugin")?; #[cfg(target_os = "ios")] api.register_ios_plugin(init_plugin_example)?; Ok(()) }) .build()}Código del frontend para llamar al comando del plugin:
import { invoke } from '@tauri-apps/api/tauri';invoke('plugin:example|ping', { value: 'Tauri' }).then(({ value }) => console.log('Response', value));Echa un vistazo a los próximos plugin de cámara y plugin de ruta.
© 2026 Colaboradores de Tauri. CC-BY / MIT