Set your Tauri application as the default handler for an URL.
This plugin requires a Rust version of at least 1.65
There are three general methods of installation that we can recommend.
Install the Core plugin by adding the following to your Cargo.toml
file:
src-tauri/Cargo.toml
```toml [dependencies] tauri-plugin-deep-link = "2.0.0-alpha"
tauri-plugin-deep-link = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } ```
You can install the JavaScript Guest bindings using your preferred JavaScript package manager:
Note: Since most JavaScript package managers are unable to install packages from git monorepos we provide read-only mirrors of each plugin. This makes installation option 2 more ergonomic to use.
```sh pnpm add @tauri-apps/plugin-deep-link
npm add @tauri-apps/plugin-deep-link
yarn add @tauri-apps/plugin-deep-link
pnpm add https://github.com/tauri-apps/tauri-plugin-deep-link#v2
npm add https://github.com/tauri-apps/tauri-plugin-deep-link#v2
yarn add https://github.com/tauri-apps/tauri-plugin-deep-link#v2 ```
For app links, you need a server with a .well-known/assetlinks.json
endpoint that must return a text response in the given format:
[
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "$APP_BUNDLE_ID",
"sha256_cert_fingerprints": [
$CERT_FINGERPRINT
]
}
}
]
Where $APP_BUNDLE_ID
is the value defined on tauri.conf.json > tauri > bundle > identifier
with -
replaced with _
and $CERT_FINGERPRINT
is a list of SHA256 fingerprints of your app's signing certificates, see verify android applinks for more information.
For universal links, you need a server with a .well-known/apple-app-site-association
endpoint that must return a text response in the given format:
{
"applinks": {
"details": [
{
"appIDs": [ "$DEVELOPMENT_TEAM_ID.$APP_BUNDLE_ID" ],
"components": [
{
"/": "/open/*",
"comment": "Matches any URL whose path starts with /open/"
}
]
}
]
}
}
Where $DEVELOPMENT_TEAM_ID
is the value defined on tauri.conf.json > tauri > bundle > iOS > developmentTeam
or the TAURI_APPLE_DEVELOPMENT_TEAM
environment variable and $APP_BUNDLE_ID
is the value defined on tauri.conf.json > tauri > bundle > identifier
. See applinks.details for more information.
See supporting associated domains for more information.
Under tauri.conf.json > plugins > deep-link
, configure the domains you want to associate with your application:
json
{
"plugins": {
"deep-link": {
"domains": [
{ "host": "your.website.com", "pathPrefix": ["/open"] },
{ "host": "another.site.br" }
]
}
}
}
First you need to register the core plugin with Tauri:
src-tauri/src/main.rs
rust
fn main() {
tauri::Builder::default()
.plugin(tauri_plugin_deep_link::init())
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
Afterwards all the plugin's APIs are available through the JavaScript guest bindings:
javascript
import { onOpenUrl } from "@tauri-apps/plugin-deep-link";
await onOpenUrl((urls) => {
console.log('deep link:', urls);
});
PRs accepted. Please make sure to read the Contributing Guide before making a pull request.
|
|
Code: (c) 2015 - Present - The Tauri Programme within The Commons Conservancy.
MIT or MIT/Apache 2.0 where applicable.