Claude Code Plugins

Community-maintained marketplace

Feedback

deep-linking

@timequity/plugins
0
0

Universal Links, App Links, and URL scheme configuration.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name deep-linking
description Universal Links, App Links, and URL scheme configuration.

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"