Deep linking in React Native

Check React Native link handling together with the native iOS and Android configuration. Test cold starts and links opened from other apps.

19 October 2026 ยท PAD team

The two halves

React Native gives you Linking for reading incoming URLs and navigation libraries for turning them into screens. Neither of those is where things break. Every deep link problem I have seen in React Native projects lives in the native configuration below the JavaScript.

Reading the URL

import { Linking } from 'react-native';

// cold start
const url = await Linking.getInitialURL();

// warm start
Linking.addEventListener('url', ({ url }) => route(url));

Handle both. Using only the listener means links work when the app is running and silently do nothing when it is launched by the link, which is the most common report.

iOS configuration

The last one is quietly responsible for a lot of "universal links do not work in React Native" threads.

Android configuration

Intent filters in the manifest with android:autoVerify="true", plus assetlinks.json on the domain listing the correct signing fingerprint. With Play App Signing, the fingerprint that matters is the one Google re-signs with, not your upload key.

The part no library covers

If your links get tapped inside Instagram or Facebook, none of the above runs. The in-app browser intercepts navigation before the operating system decides anything, and a store link there ends on a blank page. That is a separate problem with a separate fix, and it lives in the link rather than in the app.

Create a GoToApp link with your destinations, then test it on the devices and channels you plan to use. Free includes up to three projects.

Create a link

Related