Tauri 2.0.0-alpha.4 已發布
2.0 的新 alpha 版本已發布。此版本包含即將推出的 Tauri 1.3 版本的所有變更、HTTP 用戶端的重要重大變更,以及 Tauri 外掛程式的 native mobile 功能。
更新相依性
請務必將 NPM 和 Cargo 相依性更新至最新的 alpha 版本。您可以使用以下命令更新 NPM 相依性
npm install @tauri-apps/cli@next @tauri-apps/api@next
yarn upgrade @tauri-apps/cli@next @tauri-apps/api@next
pnpm update @tauri-apps/cli@next @tauri-apps/api@next
cargo add tauri@2.0.0-alpha.4cargo add tauri-build@2.0.0-alpha.2 --buildcargo install tauri-cli --version "^2.0.0-alpha" --locked
重新建立行動裝置專案以使用新功能
rm -r src-tauri/gentauri android inittauri ios init
HTTP 用戶端重大變更
預設的 HTTP 用戶端使用 attohttpc
已移除,因為 Windows 上的開發伺服器 Proxy 發生問題。所有 reqwest-*
功能標誌都已移除,因為 reqwest
現在是我們使用的用戶端。
Tauri 外掛程式的 Native Mobile 功能
Tauri 外掛程式現在可以透過 Swift 存取 iOS,並透過 Kotlin 或 Java 程式碼存取 Android API,簡化平台介面 (例如相機或地理位置) 的使用。若要在現有的外掛程式上引導 iOS 和 Android 專案,請執行 tauri plugin ios add
和 tauri plugin android add
。新的外掛程式會自動包含編寫 native mobile 程式碼所需的所有設定。
以下是一個外掛程式範例,它會接收字串值並解析物件
Android 外掛程式
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 外掛程式
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 程式碼
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()}
呼叫外掛程式命令的前端程式碼
import { invoke } from '@tauri-apps/api/tauri';invoke('plugin:example|ping', { value: 'Tauri' }).then(({ value }) => console.log('Response', value));
© 2025 Tauri Contributors. CC-BY / MIT