@tauri-apps/plugin-deep-link
Set your Tauri application as the default handler for a URL, or check which URL(s) it was opened with.
Functions
Section titled “Functions”getCurrent()
Section titled “getCurrent()”function getCurrent(): Promise<string[] | null>;Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/deep-link/guest-js/index.ts#L32
Get the current URLs that triggered the deep link. Use this on app load to check whether your app was started via a deep link.
Returns
Section titled “Returns”Promise<string[] | null>
A promise resolving to the list of URLs that triggered the deep link, or null if the app was not started via a deep link.
Example
Section titled “Example”import { getCurrent } from '@tauri-apps/plugin-deep-link';const urls = await getCurrent();Platform-specific
- Windows / Linux: This function reads the command line arguments and checks if there’s only one value, which must be an URL with scheme matching one of the configured values. Note that you must manually check the arguments when registering deep link schemes dynamically with register. Additionally, the deep link might have been provided as a CLI argument so you should check if its format matches what you expect.
2.0.0
isRegistered()
Section titled “isRegistered()”function isRegistered(protocol): Promise<boolean>;Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/deep-link/guest-js/index.ts#L100
Check whether the app is the default handler for the specified protocol.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
protocol |
string |
The name of the protocol without ://. |
Returns
Section titled “Returns”Promise<boolean>
A promise resolving to true if the app is the default handler for the protocol, false otherwise.
Example
Section titled “Example”import { isRegistered } from '@tauri-apps/plugin-deep-link';await isRegistered("my-scheme");Platform-specific
- macOS / Android / iOS: Unsupported.
2.0.0
onOpenUrl()
Section titled “onOpenUrl()”function onOpenUrl(handler): Promise<UnlistenFn>;Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/deep-link/guest-js/index.ts#L122
Helper function for the deep-link://new-url event to run a function each time the protocol is triggered while the app is running. Use getCurrent on app load to check whether your app was started via a deep link.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
handler |
(urls) => void |
The function to call with the list of URLs the app was requested to open, every time this happens while the app is running. |
Returns
Section titled “Returns”Promise<UnlistenFn>
A promise resolving to a function that unregisters the event listener.
Example
Section titled “Example”import { onOpenUrl } from '@tauri-apps/plugin-deep-link';await onOpenUrl((urls) => { console.log(urls) });Platform-specific
- Windows / Linux: Unsupported without the single-instance plugin. The OS will spawn a new app instance passing the URL as a CLI argument.
2.0.0
register()
Section titled “register()”function register(protocol): Promise<null>;Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/deep-link/guest-js/index.ts#L54
Register the app as the default handler for the specified protocol.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
protocol |
string |
The name of the protocol without ://. For example, if you want your app to handle tauri:// links, call this method with tauri as the protocol. |
Returns
Section titled “Returns”Promise<null>
A promise that resolves once the protocol has been registered.
Example
Section titled “Example”import { register } from '@tauri-apps/plugin-deep-link';await register("my-scheme");Platform-specific
- macOS / Android / iOS: Unsupported.
2.0.0
unregister()
Section titled “unregister()”function unregister(protocol): Promise<null>;Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/deep-link/guest-js/index.ts#L78
Unregister the app as the default handler for the specified protocol.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
protocol |
string |
The name of the protocol without ://. |
Returns
Section titled “Returns”Promise<null>
A promise that resolves once the protocol has been unregistered.
Example
Section titled “Example”import { unregister } from '@tauri-apps/plugin-deep-link';await unregister("my-scheme");Platform-specific
- Windows: Requires admin rights if the protocol is registered on the local machine (this can happen when registered from the NSIS installer when the install mode is set to both or per machine).
- Linux: Can only unregister the scheme if it was initially registered with register. May not work on older distros.
- macOS / Android / iOS: Unsupported.
2.0.0
© 2026 Tauri Contributors. CC-BY / MIT