Links and in-app browsers
What happens when someone taps a link in an in-app message, and how grovs links behave inside Instagram, TikTok and other social app browsers.
Links behave in two places you control:
- Links in your messages: what an Open a link button does on each platform.
- Grovs links in social apps: what happens when someone taps a grovs link in Instagram, TikTok or another app's built-in browser.
Links in a message
A button or tap action set to Open a link records the click, closes the message and opens the link.
| iOS | Web | |
|---|---|---|
https:// and http:// links | Handed to the system. A universal link claimed by your app or another app opens that app; anything else opens in Safari | Opens in the same tab |
App links such as medly://plans | Handed to the system, which opens the app that owns the scheme. Nothing happens if no app does | Handed to the browser |
Links are checked on save and again on the device:
- A link needs a scheme. Web links must name the site in full, such as
https://medly.app/plans. javascript:,data:,file:andblob:links are refused.- A personalization field can fill a link's path or query, never its scheme or host. Its value is URL-encoded.
Custom HTML messages are stricter: https: only for web links, plus mailto:, tel:, sms: and app schemes.
Moving people around inside your app
To send someone to a screen in your app, use either:
- An app link such as
medly://plans, if your app handles its own scheme. - Send data to the app, which passes key-value pairs such as
screen: plansto your app's click callback without leaving the app. Your code routes. See the SDK guides for iOS and the web.
Coming back to the app
A link or store page takes the person out of your app. A message that was waiting shows when they come back, not as they leave.
Grovs links in social app browsers
Instagram, Facebook, Messenger, Threads, TikTok, LinkedIn, Snapchat and X open links in their own built-in browser. These browsers often can't open another app, so a grovs link meant to open your app can get stuck on a web page.
With the open-in-app page on, a grovs link tapped in one of these browsers shows your link's preview page with an Open button. Tapping Open opens your app:
| What Open does | |
|---|---|
| iOS | Opens the link as a universal link, which opens your app when installed |
| Android | Opens your app through an Android App Link. If the app isn't installed, continues to the link's usual destination, such as Google Play |
Below the button, a hint reads "Not opening? Tap ⋯ and choose Open in browser." on iOS, and the same with ⋮ on Android.
Turn it on or off
Go to Links › Link Settings › Redirect Rules.
In the iOS and Android sections, under Social app browsers, choose:
- Open-in-app page to show the one-tap page in those browsers.
- Redirect as usual to treat them like any other browser.
Save your changes.
New projects start with the open-in-app page on. Projects created before it existed start with it off.
When the page is used
The page only applies when the link would open your app anyway:
- The visitor is on iOS or Android, in one of the browsers above.
- The link's redirect for that platform opens the app (the project default or the link's own override). Links that always go to a web page are unchanged.
- Tablets with their own redirect rule keep that rule.
Links that already show a preview page keep it, and gain the hint in those browsers. Bots and link-preview crawlers never get the page.
Self-hosting: the open-in-app page uses the link preview page, so it needs PREVIEW_BASE_URL set.