Platform Setup
This setup ensures reliable delivery of iOS Universal Links, Android App Links, and custom deep link schemes.
iOS Integration
1. Modify AppDelegate
Handle custom schemes and Universal Links by adding the following to your AppDelegate file.
objectivec
// Objective-C
#import <React/RCTLinkingManager.h>
// Handle custom schemes like myapp://path
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {
return [RCTLinkingManager application:app openURL:url options:options];
}
// Handle Universal Links like https://<your-subdomain>.nvgt.link/path
- (BOOL)application:(UIApplication *)application
continueUserActivity:(NSUserActivity *)userActivity
restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler {
return [RCTLinkingManager application:application
continueUserActivity:userActivity
restorationHandler:restorationHandler];
}swift
// Swift
import React
// Handle custom schemes like myapp://path
func application(_ app: UIApplication,
open url: URL,
options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return RCTLinkingManager.application(app, open: url, options: options)
}
// Handle Universal Links like https://<your-subdomain>.nvgt.link/path
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
return RCTLinkingManager.application(application,
continue: userActivity,
restorationHandler: restorationHandler)
}2. Configure in Xcode
- Custom URL Schemes: Go to Info -> URL Types -> Add your scheme (e.g.,
myapp). - Universal Links: Go to Signing & Capabilities -> Associated Domains -> Add
applinks:your-domain.nvgt.link.
Android Integration
1. Add intent filters to AndroidManifest.xml
Add the following intent filters to your .MainActivity activity tag.
xml
<activity
android:name=".MainActivity"
android:launchMode="singleTask"
... >
<!-- Handle custom schemes like myapp://path -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="myapp" android:host="example" />
</intent-filter>
<!-- Handle HTTPS app links -->
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" android:host="<your-subdomain>.nvgt.link" />
</intent-filter>
</activity>