core
此内容尚不支持你的语言。
Invoke your custom commands.
This package is also accessible with window.__TAURI__.core
when app.withGlobalTauri
in tauri.conf.json
is set to true
.
Type Parameter | Default type |
---|---|
T | unknown |
new Channel<T>(onmessage?): Channel<T>
Parameter | Type |
---|---|
onmessage ? | (response ) => void |
Channel
<T
>
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L87
Property | Type | Description | Defined in |
---|---|---|---|
id | number | The callback id returned from transformCallback | Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L79 |
get onmessage(): (response) => void
set onmessage(handler): void
Parameter | Type |
---|---|
handler | (response ) => void |
Function
Parameter | Type |
---|---|
response | T |
void
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L142
__TAURI_TO_IPC_KEY__(): string
string
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L146
toJSON(): string
string
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L150
new PluginListener( plugin, event, channelId): PluginListener
Parameter | Type |
---|---|
plugin | string |
event | string |
channelId | number |
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L161
Property | Type | Defined in |
---|---|---|
channelId | number | Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L159 |
event | string | Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L158 |
plugin | string | Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L157 |
unregister(): Promise<void>
Promise
<void
>
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L167
A rust-backed resource stored through tauri::Manager::resources_table
API.
The resource lives in the main process and does not exist
in the Javascript world, and thus will not be cleaned up automatiacally
except on application exit. If you want to clean it up early, call 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
Parameter | Type |
---|---|
rid | number |
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L313
get rid(): number
number
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L309
close(): Promise<void>
Destroys and cleans up this resource from memory. You should not call any method on this object anymore and should drop any reference to it.
Promise
<void
>
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L321
2.0.0
Property | Type | Defined in |
---|---|---|
headers | HeadersInit | Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L224 |
type InvokeArgs: Record<string, unknown> | number[] | ArrayBuffer | Uint8Array;
Command arguments.
1.0.0
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L218
type PermissionState: "granted" | "denied" | "prompt" | "prompt-with-rationale";
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L193
const SERIALIZE_TO_IPC_FN: "__TAURI_TO_IPC_KEY__" = '__TAURI_TO_IPC_KEY__';
A key to be used to implement a special function on your types that define how your type should be serialized when passing across the IPC.
Given a type in Rust that looks like this
#[derive(serde::Serialize, serde::Deserialize)enum UserId { String(String), Number(u32),}
UserId::String("id")
would be serialized into { String: "id" }
and so we need to pass the same structure back to 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
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L59
function addPluginListener<T>( plugin, event,cb): Promise<PluginListener>
Adds a listener to a plugin event.
Type Parameter |
---|
T |
Parameter | Type |
---|---|
plugin | string |
event | string |
cb | (payload ) => void |
The listener object to stop listening to the events.
2.0.0
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L182
function checkPermissions<T>(plugin): Promise<T>
Get permission state for a plugin.
This should be used by plugin authors to wrap their actual implementation.
Type Parameter |
---|
T |
Parameter | Type |
---|---|
plugin | string |
Promise
<T
>
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L200
function convertFileSrc(filePath, protocol): string
Convert a device file path to an URL that can be loaded by the webview.
Note that asset:
and http://asset.localhost
must be added to app.security.csp
in tauri.conf.json
.
Example CSP value: "csp": "default-src 'self' ipc: http://ipc.localhost; img-src 'self' asset: http://asset.localhost"
to use the asset protocol on image sources.
Additionally, "enable" : "true"
must be added to app.security.assetProtocol
in tauri.conf.json
and its access scope must be defined on the scope
array on the same assetProtocol
object.
Parameter | Type | Default value | Description |
---|---|---|---|
filePath | string | undefined | The file path. |
protocol | string | 'asset' | The protocol to use. Defaults to asset . You only need to set this when using a custom protocol. |
string
the URL that can be used as source on the 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
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L280
function invoke<T>( cmd, args,options?): Promise<T>
Sends a message to the backend.
Type Parameter |
---|
T |
Parameter | Type | Description |
---|---|---|
cmd | string | The command name. |
args | InvokeArgs | The optional arguments to pass to the command. |
options ? | InvokeOptions | The request options. |
Promise
<T
>
A promise resolving or rejecting to the backend response.
import { invoke } from '@tauri-apps/api/core';await invoke('login', { user: 'tauri', password: 'poiwe3h4r5ip3yrhtew9ty' });
1.0.0
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L242
function isTauri(): boolean
boolean
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L328
function requestPermissions<T>(plugin): Promise<T>
Request permissions.
This should be used by plugin authors to wrap their actual implementation.
Type Parameter |
---|
T |
Parameter | Type |
---|---|
plugin | string |
Promise
<T
>
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L209
function transformCallback<T>(callback?, once?): number
Stores the callback in a known location, and returns an identifier that can be passed to the backend.
The backend uses the identifier to eval()
the callback.
Type Parameter | Default type |
---|---|
T | unknown |
Parameter | Type | Default value |
---|---|---|
callback ? | (response ) => void | undefined |
once ? | boolean | false |
number
An unique identifier associated with the callback function.
1.0.0
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L69
© 2025 Tauri Contributors. CC-BY / MIT