Saltar al contenido

core

Invoca tus comandos personalizados.

Este paquete también es accesible con window.__TAURI__.core cuando app.withGlobalTauri en tauri.conf.json está establecido en true.

Parámetro de tipo Tipo por defecto
T unknown

new Channel<T>(onmessage?): Channel<T>
Parámetro Tipo
onmessage? (response) => void

Channel<T>

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L87

Propiedad Tipo Descripción Definido en
id number El id de callback devuelto desde transformCallback Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L79

get onmessage(): (response) => void
set onmessage(handler): void
Parámetro Tipo
handler (response) => void

Function

Parámetro Tipo
response T

void

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L142

__TAURI_TO_IPC_KEY__(): string

string

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L146

toJSON(): string

string

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L150


new PluginListener(
plugin,
event,
channelId): PluginListener
Parámetro Tipo
plugin string
event string
channelId number

PluginListener

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L161

Propiedad Tipo Definido en
channelId number Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L159
event string Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L158
plugin string Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L157

unregister(): Promise<void>

Promise<void>

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L167


Un recurso respaldado por Rust almacenado a través de la API tauri::Manager::resources_table.

El recurso vive en el proceso principal y no existe en el mundo de JavaScript, por lo que no se limpiará automáticamente excepto al salir de la aplicación. Si quieres limpiarlo antes, llama a Resource.close

import { Resource, invoke } from '@tauri-apps/api/core';
export class DatabaseHandle extends Resource {
static async open(path: string): Promise<DatabaseHandle> {
const rid: number = await invoke('open_db', { path });
return new DatabaseHandle(rid);
}
async execute(sql: string): Promise<void> {
await invoke('execute_sql', { rid: this.rid, sql });
}
}

new Resource(rid): Resource
Parámetro Tipo
rid number

Resource

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L322

get rid(): number

number

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L318

close(): Promise<void>

Destruye y limpia este recurso de la memoria. Ya no deberías llamar a ningún método de este objeto y deberías descartar cualquier referencia a él.

Promise<void>

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L330

2.0.0

Propiedad Tipo Definido en
headers HeadersInit Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L233

type InvokeArgs: Record<string, unknown> | number[] | ArrayBuffer | Uint8Array;

Argumentos del comando.

1.0.0

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L227


type PermissionState: "granted" | "denied" | "prompt" | "prompt-with-rationale";

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L202

const SERIALIZE_TO_IPC_FN: "__TAURI_TO_IPC_KEY__" = '__TAURI_TO_IPC_KEY__';

Una clave que se utilizará para implementar una función especial en tus tipos que define cómo debe serializarse tu tipo al pasarse a través del IPC.

Dado un tipo en Rust que luce como esto

#[derive(serde::Serialize, serde::Deserialize)
enum UserId {
String(String),
Number(u32),
}

UserId::String("id") se serializaría en { String: "id" } y por lo tanto necesitamos pasar la misma estructura de vuelta a Rust

import { SERIALIZE_TO_IPC_FN } from "@tauri-apps/api/core"
class UserIdString {
id
constructor(id) {
this.id = id
}
[SERIALIZE_TO_IPC_FN]() {
return { String: this.id }
}
}
class UserIdNumber {
id
constructor(id) {
this.id = id
}
[SERIALIZE_TO_IPC_FN]() {
return { Number: this.id }
}
}
type UserId = UserIdString | UserIdNumber

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L59

function addPluginListener<T>(
plugin,
event,
cb): Promise<PluginListener>

Agrega un listener a un evento de plugin.

Parámetro de tipo
T
Parámetro Tipo
plugin string
event string
cb (payload) => void

Promise<PluginListener>

El objeto listener para dejar de escuchar los eventos.

2.0.0

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L182


function checkPermissions<T>(plugin): Promise<T>

Obtiene el estado de permisos para un plugin.

Esto debe ser usado por los autores de plugins para envolver su implementación real.

Parámetro de tipo
T
Parámetro Tipo
plugin string

Promise<T>

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L209


function convertFileSrc(filePath, protocol): string

Convierte la ruta de archivo de un dispositivo en una URL que puede ser cargada por el webview. Ten en cuenta que asset: y http://asset.localhost deben agregarse a app.security.csp en tauri.conf.json. Ejemplo de valor CSP: "csp": "default-src 'self' ipc: http://ipc.localhost; img-src 'self' asset: http://asset.localhost" para usar el protocolo asset en fuentes de imágenes.

Además, debe agregarse "enable" : "true" a app.security.assetProtocol en tauri.conf.json y su alcance de acceso debe definirse en el arreglo scope del mismo objeto assetProtocol.

Parámetro Tipo Valor por defecto Descripción
filePath string undefined La ruta del archivo.
protocol string 'asset' El protocolo a utilizar. Por defecto es asset. Solo necesitas establecer esto cuando usas un protocolo personalizado.

string

la URL que puede usarse como fuente en el webview.

import { appDataDir, join } from '@tauri-apps/api/path';
import { convertFileSrc } from '@tauri-apps/api/core';
const appDataDirPath = await appDataDir();
const filePath = await join(appDataDirPath, 'assets/video.mp4');
const assetUrl = convertFileSrc(filePath);
const video = document.getElementById('my-video');
const source = document.createElement('source');
source.type = 'video/mp4';
source.src = assetUrl;
video.appendChild(source);
video.load();

1.0.0

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L289


function invoke<T>(
cmd,
args,
options?): Promise<T>

Envía un mensaje al backend.

Parámetro de tipo
T
Parámetro Tipo Descripción
cmd string El nombre del comando.
args InvokeArgs Los argumentos opcionales a pasar al comando.
options? InvokeOptions Las opciones de la solicitud.

Promise<T>

Una promesa que se resuelve o rechaza con la respuesta del backend.

import { invoke } from '@tauri-apps/api/core';
await invoke('login', { user: 'tauri', password: 'poiwe3h4r5ip3yrhtew9ty' });

1.0.0

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L251


function isTauri(): boolean

boolean

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L337


function requestPermissions<T>(plugin): Promise<T>

Solicita permisos.

Esto debe ser usado por los autores de plugins para envolver su implementación real.

Parámetro de tipo
T
Parámetro Tipo
plugin string

Promise<T>

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L218


function transformCallback<T>(callback?, once?): number

Almacena el callback en una ubicación conocida y devuelve un identificador que se puede pasar al backend. El backend utiliza el identificador para ejecutar eval() sobre el callback.

Parámetro de tipo Tipo por defecto
T unknown
Parámetro Tipo Valor por defecto
callback? (response) => void undefined
once? boolean false

number

Un identificador único asociado con la función de callback.

1.0.0

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L69


© 2026 Colaboradores de Tauri. CC-BY / MIT