跳到主要內容
Tauri

core

調用您的自訂命令。

app.withGlobalTauritauri.conf.json 中設定為 true 時,此套件也可以透過 window.__TAURI__.core 存取。

類別

Channel<T>

類型參數

類型參數預設類型
Tunknown

建構函式

new Channel()
new Channel<T>(): Channel<T>
回傳

Channel<T>

來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L88

屬性

屬性類型定義於
idnumber來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L78

存取器

onmessage
Get Signature
get onmessage(): (response) => void
回傳

Function

參數
Parameter類型
responseT
回傳

void

Set Signature
set onmessage(handler): void
參數
Parameter類型
handler(response) => void
回傳

void

來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L118

方法

__TAURI_TO_IPC_KEY__()
__TAURI_TO_IPC_KEY__(): string
回傳

string

來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L122

toJSON()
toJSON(): string
回傳

string

來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L126


PluginListener

建構函式

new PluginListener()
new PluginListener(
plugin,
event,
channelId): PluginListener
參數
Parameter類型
pluginstring
eventstring
channelIdnumber
回傳

PluginListener

來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L137

屬性

屬性類型定義於
channelIdnumber來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L135
eventstring來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L134
pluginstring來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L133

方法

unregister()
unregister(): Promise<void>
回傳

Promise<void>

來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L143


Resource

透過 tauri::Manager::resources_table API 儲存的 Rust 後端資源。

資源存在於主程序中,並且不存在於 Javascript 世界中,因此除了應用程式退出外,不會自動清除。如果您想提早清除它,請呼叫 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()
new Resource(rid): Resource
參數
Parameter類型
ridnumber
回傳

Resource

來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L290

存取器

rid
Get Signature
get rid(): number
回傳

number

來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L286

方法

close()
close(): Promise<void>

從記憶體中銷毀並清除此資源。您不應再在此物件上呼叫任何方法,並且應捨棄對它的任何參考。

回傳

Promise<void>

來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L298

介面

InvokeOptions

2.0.0

屬性

屬性類型定義於
headersRecord<string, string> | Headers來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L201

類型別名

InvokeArgs

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

命令參數。

1.0.0

來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L195


PermissionState

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

來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L170

變數

SERIALIZE_TO_IPC_FN

const SERIALIZE_TO_IPC_FN: "__TAURI_TO_IPC_KEY__" = '__TAURI_TO_IPC_KEY__';

用於在您的類型上實作特殊函式的金鑰,該函式定義了您的類型在跨 IPC 傳遞時應如何序列化。

範例

假設 Rust 中的類型如下所示

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

UserId::String("id") 將被序列化為 { String: "id" },因此我們需要將相同的結構傳遞回 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

來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L60

函式

addPluginListener()

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

為外掛程式事件新增監聽器。

類型參數

類型參數
T

參數

Parameter類型
pluginstring
eventstring
cb(payload) => void

回傳

Promise<PluginListener>

停止監聽事件的監聽器物件。

2.0.0

來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L158


checkPermissions()

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

取得外掛程式的權限狀態。

外掛程式作者應使用此方法來包裝其實際實作。

類型參數

類型參數
T

參數

Parameter類型
pluginstring

回傳

Promise<T>

來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L177


convertFileSrc()

function convertFileSrc(filePath, protocol): string

將裝置檔案路徑轉換為可由 webview 載入的 URL。請注意,asset:http://asset.localhost 必須新增至 app.security.csptauri.conf.json 中。範例 CSP 值:"csp": "default-src 'self' ipc: http://ipc.localhost; img-src 'self' asset: http://asset.localhost" 以在影像來源上使用 asset 協定。

此外,"enable" : "true" 必須新增至 app.security.assetProtocoltauri.conf.json 中,並且其存取作用域必須在相同的 assetProtocol 物件的 scope 陣列上定義。

參數

Parameter類型預設值描述
filePathstringundefined檔案路徑。
protocolstring'asset'要使用的協定。預設為 asset。只有在使用自訂協定時才需要設定此項。

回傳

string

可用於 webview 上作為來源的 URL。

範例

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

來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L257


invoke()

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

傳送訊息到後端。

類型參數

類型參數
T

參數

Parameter類型描述
cmdstring命令名稱。
argsInvokeArgs要傳遞給命令的選用引數。
options?InvokeOptions請求選項。

回傳

Promise<T>

解析或拒絕後端回應的 Promise。

範例

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

1.0.0

來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L219


isTauri()

function isTauri(): boolean

回傳

boolean

來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L305


requestPermissions()

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

請求權限。

外掛程式作者應使用此方法來包裝其實際實作。

類型參數

類型參數
T

參數

Parameter類型
pluginstring

回傳

Promise<T>

來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L186


transformCallback()

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

將回呼函式轉換為字串識別碼,該識別碼可以傳遞到後端。後端使用識別碼來 eval() 回呼。

類型參數

類型參數預設類型
Tunknown

參數

Parameter類型預設值
callback?(response) => voidundefined
once?booleanfalse

回傳

number

與回呼函式關聯的唯一識別碼。

1.0.0

來源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L70


© 2025 Tauri Contributors. CC-BY / MIT