From 9845a51f1009e3901d6522dcb2ae1dd74a68b7ef Mon Sep 17 00:00:00 2001 From: Scott Adams Date: Mon, 4 Dec 2017 14:21:13 -0500 Subject: [PATCH] iOS Dynamic Links now 'Survive' installation. --- ios/RNFirebase/links/RNFirebaseLinks.m | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ios/RNFirebase/links/RNFirebaseLinks.m b/ios/RNFirebase/links/RNFirebaseLinks.m index 350eb25b..f7f580d4 100644 --- a/ios/RNFirebase/links/RNFirebaseLinks.m +++ b/ios/RNFirebase/links/RNFirebaseLinks.m @@ -16,6 +16,8 @@ static void sendDynamicLink(NSURL *url, id sender) { RCT_EXPORT_MODULE(); +static NSURL *installLink; + - (id)init { self = [super init]; if (self != nil) { @@ -51,6 +53,9 @@ RCT_EXPORT_MODULE(); } + (BOOL)handleLinkFromCustomSchemeURL:(NSURL *)url { + if(!installLink) { + installLink = url; + } FIRDynamicLink *dynamicLink = [[FIRDynamicLinks dynamicLinks] dynamicLinkFromCustomSchemeURL:url]; if (dynamicLink && dynamicLink.url) { @@ -124,7 +129,8 @@ RCT_EXPORT_METHOD(getInitialLink:(RCTPromiseResolveBlock)resolve rejecter:(RCTPr if (self.bridge.launchOptions[UIApplicationLaunchOptionsURLKey]) { NSURL* url = (NSURL*)self.bridge.launchOptions[UIApplicationLaunchOptionsURLKey]; [self handleInitialLinkFromCustomSchemeURL:url resolver:resolve rejecter:reject]; - + } else if(installLink) { + [self handleInitialLinkFromCustomSchemeURL:installLink resolver:resolve rejecter:reject]; } else { NSDictionary *userActivityDictionary = self.bridge.launchOptions[UIApplicationLaunchOptionsUserActivityDictionaryKey];