Related Applications

Overview

The related_applications property allows you to specify native applications available on different platforms (App Store, Play Store, Microsoft Store, etc.). Combined with prefer_related_applications, browsers can suggest installing the native app instead of or alongside the PWA.

Use Cases:

  • You have both a PWA and native mobile apps

  • You want to promote the native app for better platform integration

  • You want users to discover all versions of your app

  • You need platform-specific features only available in native apps

Configuration

List related native apps without preferring them:

/config/packages/pwa.yaml
pwa:
    manifest:
        prefer_related_applications: false  # Don't prefer native apps
        related_applications:
            - platform: "play"
              url: "https://play.google.com/store/apps/details?id=com.example.app"
              id: "com.example.app"

Result: Browser shows PWA install prompt. Native apps listed as alternatives.

Prefer Native Applications

Suggest native apps over PWA installation:

Result: Browser suggests installing native app first, PWA as fallback.

Multiple Platforms

List apps for all major platforms:

Properties

Type: boolean Default: false

Controls whether browsers should suggest native apps over the PWA.

Value
Behavior

false

PWA is primary, native apps as alternatives

true

Native apps preferred, PWA as fallback

When to use true:

  • Native app provides significantly better experience

  • Platform-specific features are critical

  • Native app is your primary product

  • PWA is mainly for web compatibility

When to use false (default):

  • PWA is your primary product

  • Want maximum reach across all platforms

  • Native app is optional enhancement

  • PWA feature parity with native apps

platform

Type: string (required)

Identifier for the app platform.

Supported Platforms

play (Google Play Store)

For: Android devices

URL Format: https://play.google.com/store/apps/details?id={package_name}

ID Format: Java package name (e.g., com.company.app)

Finding your package name:

  1. Open Play Console

  2. Go to your app

  3. Check "Package name" field

  4. Or find in build.gradle: applicationId "com.example.app"

itunes (Apple App Store)

For: iOS, iPadOS devices

URL Format: https://apps.apple.com/app/{app-name}/id{app_id}

ID Format: Numeric App ID (e.g., 123456789)

Finding your App ID:

  1. Open App Store Connect

  2. Go to your app

  3. Check "Apple ID" field

  4. Or find in App Store URL after /id

windows (Microsoft Store)

For: Windows 10/11 devices

URL Format: https://apps.microsoft.com/store/detail/{store_id}

ID Format: Store ID starting with 9 (e.g., 9NBLGGH4NNS1)

Finding your Store ID:

  1. Open Partner Center

  2. Go to your app

  3. Check "Store ID" field

  4. Or find in Microsoft Store URL

chrome_web_store (Chrome Web Store)

For: Chrome Extensions/Apps

URL Format: https://chrome.google.com/webstore/detail/{extension_id}

ID Format: 32-character extension ID

Finding your Extension ID:

  1. Open Chrome Web Store Developer Dashboard

  2. Go to your extension

  3. Check "Item ID" field

  4. Or find in extension URL

chromeos_play (Chrome OS Play Store)

For: Chrome OS devices with Play Store support

Format: Same as Google Play Store

webapp (Web Apps)

For: Generic web applications

URL Format: Any URL to your web app

f-droid (F-Droid)

For: Android open-source app repository

URL Format: https://f-droid.org/packages/{package_name}

amazon (Amazon Appstore)

For: Amazon Fire devices, Android

URL Format: https://www.amazon.com/dp/{asin}

ID Format: ASIN (Amazon Standard Identification Number)

Complete Examples

Example 1: Social Media App

PWA primary, native apps as enhancements:

Example 2: Game

Native apps preferred for performance:

Example 3: Productivity Tool

Available on all platforms:

No native apps, just PWA:

Browser Support

Browser
Support
Behavior

Chrome (Android)

May show native app banner if prefer=true

Chrome (Desktop)

⚠️

Limited support

Edge

⚠️

Limited support

Safari

Ignored

Firefox

Ignored

circle-info

Graceful Degradation: Browsers that don't support this feature simply ignore it and show standard PWA install prompts.

User Experience Flow

Testing

1. Check Manifest

2. Test on Android Chrome

4. DevTools Inspection

Best Practices

1. Keep URLs Updated

2. Include App IDs

3. List Active Platforms Only

5. Provide Fallback

Always ensure your PWA works standalone, even when preferring native apps.

Decision Tree

Should you prefer native applications?

Common Mistakes

1. Wrong ID Format

Problem:

Solution:

2. Missing Platform

Problem:

Solution:

Problem:

Solution:

4. Outdated URLs

Problem: URLs point to removed or renamed apps

Solution: Regularly verify all store URLs still work

Troubleshooting

Native App Banner Not Showing

Problem: Expected native app banner doesn't appear

Checklist:

  • prefer_related_applications: true is set

  • ✓ Testing on supported browser (Chrome Android)

  • ✓ App actually exists on specified platform

  • ✓ URL and ID are correct

  • ✓ App is published (not draft)

  • ✓ PWA manifest is valid

Wrong App Suggested

Problem: Browser suggests wrong native app

Solutions:

  • Verify id matches the actual app

  • Check platform is correct

  • Ensure URL points to correct store listing

  • Clear browser cache and try again

PWA Install Blocked

Problem: Users can't install PWA when prefer=true

Solutions:

  • Set prefer_related_applications: false

  • Or ensure native app is available

  • Provide manual "Install PWA" link in your app

Resources

  • MDN related_applications: https://developer.mozilla.org/en-US/docs/Web/Manifest/related_applications

  • Web.dev: https://web.dev/add-manifest/#related_applications

  • W3C Spec: https://w3c.github.io/manifest/#related_applications-member

Last updated

Was this helpful?