Common Interaction Pitfalls

Every pitfall below appeared in this section's runs or follows directly from them.

Interaction pitfalls met in this section and their fixes
Symptom Cause Fix
canOpenURL('mailto:...') is false Android 11 package visibility Declare <queries>, or just openURL()
Deep link opens the wrong screen Custom scheme puts book in hostname Combine hostname and path
App Link opens the browser Domain not verified Serve assetlinks.json with the right fingerprint
Share reported as done Android always returns sharedAction Never trust the result on Android
Shared link is missing Android ignores url Put the link in message
Destructive button looks normal Android ignores Alert style Say it in the title and label
Listeners pile up No cleanup in useEffect Call remove() on each subscription
Drag lags under load PanResponder runs in JavaScript Gesture Handler 6,788 (Reanimated and Gesture Handler)

Test every link both on a cold start and while the app runs, since getInitialURL() and the url event are separate paths, and test Alert, Share, Vibration and the clipboard on both platforms.