Files
flipper/docs/extending/deeplinks.mdx
Anton Kastritskiy 7d4a6437ef Force trailing slash for flipper website
Summary: Use docusaurus new config option to force trailing slashes for all routes and fail build when extensions are not specified in markdown links to prevent flapping urls that lead to 404 in certain situations.

Reviewed By: jknoxville

Differential Revision: D32533292

fbshipit-source-id: a2d5fdff396b3bb4319893634dd637275ea9f598
2021-11-18 09:32:30 -08:00

35 lines
1.9 KiB
Plaintext

---
id: deeplinks
title: Using deeplinks
---
Flipper supports opening Flipper through deeplinks, by using the `flipper://` protocol.
## open-plugin
The follow 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. E.g. `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 will make sure that:
* [FB-ONLY] The user is logged in & connected to Facebook.
* Verify that Flipper is up to date.
* [FB-ONLY] Install the specified plugin if not installed already.
* Make sure 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.
* Enable the plugin if not enabled already.
### 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 that 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).