Main Site ↗

deep-linking

by timequity60GitHub

Provides configuration examples for implementing deep linking in Expo/React Native apps, covering URL schemes, Universal Links (iOS), and App Links (Android). Includes code snippets for app.json setup, server configuration files, and testing commands.

Unlock Deep Analysis

Use AI to visualize the workflow and generate a realistic output preview for this skill.

Powered by Fastest LLM

Target Audience

React Native/Expo developers implementing deep linking for mobile apps

10/10Security

Low security risk, safe to use

8
Clarity
9
Practicality
8
Quality
7
Maintainability
6
Innovation
Mobile
exporeact-nativedeep-linkingapp-linksuniversal-links
Compatible Agents
Claude Code
Claude Code
~/.claude/skills/
Codex CLI
Codex CLI
~/.codex/skills/
Gemini CLI
Gemini CLI
~/.gemini/skills/
O
OpenCode
~/.opencode/skills/
O
OpenClaw
~/.openclaw/skills/
GitHub Copilot
GitHub Copilot
~/.copilot/skills/
Cursor
Cursor
~/.cursor/skills/
W
Windsurf
~/.codeium/windsurf/skills/
C
Cline
~/.cline/skills/
R
Roo Code
~/.roo/skills/
K
Kiro
~/.kiro/skills/
J
Junie
~/.junie/skills/
A
Augment Code
~/.augment/skills/
W
Warp
~/.warp/skills/
G
Goose
~/.config/goose/skills/
SKILL.md

Deep Linking

URL Schemes

// app.json
{
  "expo": {
    "scheme": "myapp"
  }
}
// Handle myapp://path
import * as Linking from 'expo-linking';

const url = Linking.createURL('path/to/screen', {
  queryParams: { id: '123' },
});
// myapp://path/to/screen?id=123

Universal Links (iOS)

// app.json
{
  "expo": {
    "ios": {
      "associatedDomains": ["applinks:example.com"]
    }
  }
}
// /.well-known/apple-app-site-association
{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "TEAM_ID.com.example.app",
        "paths": ["/product/*", "/user/*"]
      }
    ]
  }
}

App Links (Android)

// app.json
{
  "expo": {
    "android": {
      "intentFilters": [
        {
          "action": "VIEW",
          "autoVerify": true,
          "data": [
            {
              "scheme": "https",
              "host": "example.com",
              "pathPrefix": "/product"
            }
          ],
          "category": ["BROWSABLE", "DEFAULT"]
        }
      ]
    }
  }
}
// /.well-known/assetlinks.json
[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.app",
    "sha256_cert_fingerprints": ["..."]
  }
}]

Expo Router

// app/_layout.tsx
export default function Layout() {
  return (
    <Stack>
      <Stack.Screen name="product/[id]" />
    </Stack>
  );
}

// app/product/[id].tsx
export default function ProductScreen() {
  const { id } = useLocalSearchParams();
  // https://example.com/product/123 -> id = "123"
}

Testing

# iOS Simulator
xcrun simctl openurl booted "myapp://product/123"

# Android Emulator
adb shell am start -a android.intent.action.VIEW -d "myapp://product/123"

Source: https://github.com/timequity/plugins#craft-coder~mobile~deep-linking

Content curated from original sources, copyright belongs to authors

Grade A
7.8AI Score
Best Practices
Checking...
Try this Skill

User Rating

USER RATING

0UP
0DOWN
Loading files...

WORKS WITH

Claude Code
Claude
Codex CLI
Codex
Gemini CLI
Gemini
O
OpenCode
O
OpenClaw
GitHub Copilot
Copilot
Cursor
Cursor
W
Windsurf
C
Cline
R
Roo
K
Kiro
J
Junie
A
Augment
W
Warp
G
Goose