Files
flipper/docs/extending/deeplinks.mdx
Kevin Strider cd1345bc28 deeplinks.mdx (Creating Plugins - Using Deeplinks)
Summary: Restyle of page, including changes to spelling, grammar, links, and structure (where relevant).

Reviewed By: mweststrate

Differential Revision: D36595695

fbshipit-source-id: 7aea6856da2d1e00676c781ffe3d817d6abc58dc
2022-05-23 09:39:07 -07:00

37 lines
1.8 KiB
Plaintext

---
id: deeplinks
title: Using Deeplinks
---
Flipper supports opening Flipper through deeplinks via the `flipper://` protocol.
## open-plugin
The following link format can be used to open Flipper and open a specific plugin:
`flipper://open-plugin?plugin-id=<plugin-id>&client=<client>&devices=<devices>&payload=<payload>`
The parameters are specified as follows:
* `plugin-id` - [required] the identifier of the plugin that needs to be opened, as specified by the `id` field in `package.json`.
* `client` - [optional] the name of the application that should be opened. For device plugins, this doesn't need to be specified. If not set, the user will be prompted to select a client.
* `devices` - [optional] comma separated list of device types that are acceptable. For example, `iOS,Android` or `Metro`. If set, `client` and `plugin-id` must be running on this type of device.
* `payload` - [optional] any additional string argument to pass to the plugin. Note that this argument should be properly URL encoded.
Using this deeplink format ensures that:
* [FB-ONLY] The user is logged in & connected to Facebook.
* Flipper is up to date.
* [FB-ONLY] The specified plugin is installed.
* The plugin is available on the provided client / device, or will prompt the user for a valid device / client selection is made on which the plugin is available.
* The plugin is enabled.
### Handling deeplinks in the plugin
If a plugin is opened through a deeplink, for which a `payload` was set, the [`onDeepLink`](flipper-plugin.mdx#ondeeplink) handler will be triggered directly after initializing and rendering the plugin.
:::note
The same payload format can also be used to open other plugins programmatically from inside another plugin, by passing the payload as second argument to [selectPlugin](flipper-plugin.mdx#selectplugin).
:::