core
調用您的自訂命令。
當 app.withGlobalTauri
在 tauri.conf.json
中設定為 true
時,此套件也可以透過 window.__TAURI__.core
存取。
類別
Channel<T>
類型參數
類型參數 | 預設類型 |
---|---|
T | unknown |
建構函式
new Channel()
new Channel<T>(): Channel<T>
回傳
Channel
<T
>
來源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L88
屬性
屬性 | 類型 | 定義於 |
---|---|---|
id | number | 來源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L78 |
存取器
onmessage
Get Signature
get onmessage(): (response) => void
回傳
Function
參數
Parameter | 類型 |
---|---|
response | T |
回傳
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 | 類型 |
---|---|
plugin | string |
event | string |
channelId | number |
回傳
來源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L137
屬性
屬性 | 類型 | 定義於 |
---|---|---|
channelId | number | 來源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L135 |
event | string | 來源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L134 |
plugin | string | 來源: 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 | 類型 |
---|---|
rid | number |
回傳
來源: 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
屬性
屬性 | 類型 | 定義於 |
---|---|---|
headers | Record <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 | 類型 |
---|---|
plugin | string |
event | string |
cb | (payload ) => void |
回傳
停止監聽事件的監聽器物件。
自
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 | 類型 |
---|---|
plugin | string |
回傳
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.csp
在 tauri.conf.json
中。範例 CSP 值:"csp": "default-src 'self' ipc: http://ipc.localhost; img-src 'self' asset: http://asset.localhost"
以在影像來源上使用 asset 協定。
此外,"enable" : "true"
必須新增至 app.security.assetProtocol
在 tauri.conf.json
中,並且其存取作用域必須在相同的 assetProtocol
物件的 scope
陣列上定義。
參數
Parameter | 類型 | 預設值 | 描述 |
---|---|---|---|
filePath | string | undefined | 檔案路徑。 |
protocol | string | '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 | 類型 | 描述 |
---|---|---|
cmd | string | 命令名稱。 |
args | InvokeArgs | 要傳遞給命令的選用引數。 |
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 | 類型 |
---|---|
plugin | string |
回傳
Promise
<T
>
來源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L186
transformCallback()
function transformCallback<T>(callback?, once?): number
將回呼函式轉換為字串識別碼,該識別碼可以傳遞到後端。後端使用識別碼來 eval()
回呼。
類型參數
類型參數 | 預設類型 |
---|---|
T | unknown |
參數
Parameter | 類型 | 預設值 |
---|---|---|
callback ? | (response ) => void | undefined |
once ? | boolean | false |
回傳
number
與回呼函式關聯的唯一識別碼。
自
1.0.0
來源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L70
© 2025 Tauri Contributors. CC-BY / MIT