mirror of
https://github.com/tauri-apps/tauri-invoke-http.git
synced 2026-01-31 00:45:20 +01:00
46 lines
1.4 KiB
Markdown
46 lines
1.4 KiB
Markdown
# Tauri Invoke HTTP
|
|
|
|
This is a crate that provides a custom invoke system for Tauri using a localhost server.
|
|
Each message is delivered through a `XMLHttpRequest` and the server is responsible for replying to it.
|
|
|
|
## Usage
|
|
|
|
First, add the dependency to your `src-tauri/Cargo.toml` file:
|
|
|
|
```
|
|
[dependencies]
|
|
tauri-invoke-http = "0.1"
|
|
```
|
|
|
|
Then, setup the HTTP invoke system on the `main.rs` file:
|
|
|
|
```rust
|
|
fn main() {
|
|
// initialize the custom invoke system as a HTTP server, allowing the given origins to access it.
|
|
let http = tauri_invoke_http::Invoke::new(if cfg!(feature = "custom-protocol") {
|
|
["tauri://localhost"]
|
|
} else {
|
|
["http://localhost:8080"]
|
|
});
|
|
tauri::Builder::default()
|
|
.invoke_system(http.initialization_script(), http.responder())
|
|
.setup(move |app| {
|
|
http.start(app.handle());
|
|
Ok(())
|
|
})
|
|
.run(tauri::generate_context!())
|
|
.expect("error while running tauri application")
|
|
}
|
|
```
|
|
|
|
To invoke a custom command from your own or remote system you can use `curl` or similar tooling.
|
|
See [`examples/vanilla`](examples/vanilla/) to test this on your system.
|
|
|
|
An example command to invoke the `exit` command in the example Tauri app exposing port `18436` (randomly chosen port) could look like:
|
|
|
|
```sh
|
|
curl localhost:18436/main -H 'Content-Type: application/json' -d '{ "__tauriModule": "Process", "cmd": "exit", "callback": 1234, "error": 1234, "message": {"cmd": "exit", "exitCode": 1 } }'
|
|
```
|
|
|
|
|