Skip to content

Commit

Permalink
chore(single-instance): put deep link integration behined a feature (#…
Browse files Browse the repository at this point in the history
…1766)

* Make deep link optional for single instance

* Add change file

* Add deep-link feature to example

* Update plugins/deep-link/README.md

Co-authored-by: Fabian-Lars <[email protected]>

* format

* [skip ci] update readme

---------

Co-authored-by: Fabian-Lars <[email protected]>
  • Loading branch information
Legend-Master and FabianLars authored Sep 12, 2024
1 parent 41afcae commit b226933
Show file tree
Hide file tree
Showing 7 changed files with 18 additions and 8 deletions.
5 changes: 5 additions & 0 deletions .changes/single-instance-optional-deep-link.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"single-instance": "patch"
---

Put deep link integration behined a feature
2 changes: 1 addition & 1 deletion plugins/deep-link/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ await onOpenUrl((urls) => {
})
```

Note that the Plugin will only emit events on macOS, iOS and Android. On Windows and Linux the OS will spawn a new instance of your app with the URL as a CLI argument. If you want your app to behave on Windows & Linux similar to the other platforms you can use the [single-instance](../single-instance/) plugin.
Note that the Plugin will only emit events on macOS, iOS and Android. On Windows and Linux the OS will spawn a new instance of your app with the URL as a CLI argument. If you want your app to behave on Windows & Linux similar to the other platforms you can use the [single-instance](../single-instance/) plugin with the `deep-link` feature enabled.

## Contributing

Expand Down
4 changes: 3 additions & 1 deletion plugins/deep-link/examples/app/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ serde_json = { workspace = true }
tauri = { workspace = true, features = ["wry", "compression"] }
tauri-plugin-deep-link = { path = "../../../" }
tauri-plugin-log = { path = "../../../../log" }
tauri-plugin-single-instance = { path = "../../../../single-instance" }
tauri-plugin-single-instance = { path = "../../../../single-instance", features = [
"deep-link",
] }
log = "0.4"

[features]
Expand Down
2 changes: 1 addition & 1 deletion plugins/deep-link/examples/app/src-tauri/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use tauri::Listener;
// Learn more about Tauri commands at https://tauri.app/v1/guides/features/command
#[tauri::command]
fn greet(name: &str) -> String {
format!("Hello, {}! You've been greeted from Rust!", name)
format!("Hello, {name}! You've been greeted from Rust!")
}

#[cfg_attr(mobile, tauri::mobile_entry_point)]
Expand Down
3 changes: 2 additions & 1 deletion plugins/single-instance/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ serde_json = { workspace = true }
tauri = { workspace = true }
log = { workspace = true }
thiserror = { workspace = true }
tauri-plugin-deep-link = { path = "../deep-link", version = "2.0.0-rc.4" }
tauri-plugin-deep-link = { path = "../deep-link", version = "2.0.0-rc.4", optional = true }
semver = { version = "1", optional = true }

[target."cfg(target_os = \"windows\")".dependencies.windows-sys]
Expand All @@ -39,3 +39,4 @@ zbus = "4"

[features]
semver = ["dep:semver"]
deep-link = ["dep:tauri-plugin-deep-link"]
6 changes: 4 additions & 2 deletions plugins/single-instance/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ use tauri::{Manager};

#[derive(Clone, serde::Serialize)]
struct Payload {
args: Vec<String>,
cwd: String,
args: Vec<String>,
cwd: String,
}

fn main() {
Expand All @@ -49,6 +49,8 @@ fn main() {
}
```

Note that currently, plugins run in the order they were added in to the builder, so make sure that this plugin is registered first.

## Contributing

PRs accepted. Please make sure to read the Contributing Guide before making a pull request.
Expand Down
4 changes: 2 additions & 2 deletions plugins/single-instance/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
#![cfg(not(any(target_os = "android", target_os = "ios")))]

use tauri::{plugin::TauriPlugin, AppHandle, Manager, Runtime};
use tauri_plugin_deep_link::DeepLink;

#[cfg(target_os = "windows")]
#[path = "platform_impl/windows.rs"]
Expand All @@ -35,7 +34,8 @@ pub fn init<R: Runtime, F: FnMut(&AppHandle<R>, Vec<String>, String) + Send + Sy
mut f: F,
) -> TauriPlugin<R> {
platform_impl::init(Box::new(move |app, args, cwd| {
if let Some(deep_link) = app.try_state::<DeepLink<R>>() {
#[cfg(feature = "deep-link")]
if let Some(deep_link) = app.try_state::<tauri_plugin_deep_link::DeepLink<R>>() {
deep_link.handle_cli_arguments(args.iter());
}
f(app, args, cwd)
Expand Down

0 comments on commit b226933

Please sign in to comment.