iOS Dynamic Links now 'Survive' installation.

This commit is contained in:
Scott Adams 2017-12-04 14:21:13 -05:00
parent ba79167c7f
commit 9845a51f10
1 changed files with 7 additions and 1 deletions

View File

@ -16,6 +16,8 @@ static void sendDynamicLink(NSURL *url, id sender) {
RCT_EXPORT_MODULE(); RCT_EXPORT_MODULE();
static NSURL *installLink;
- (id)init { - (id)init {
self = [super init]; self = [super init];
if (self != nil) { if (self != nil) {
@ -51,6 +53,9 @@ RCT_EXPORT_MODULE();
} }
+ (BOOL)handleLinkFromCustomSchemeURL:(NSURL *)url { + (BOOL)handleLinkFromCustomSchemeURL:(NSURL *)url {
if(!installLink) {
installLink = url;
}
FIRDynamicLink *dynamicLink = FIRDynamicLink *dynamicLink =
[[FIRDynamicLinks dynamicLinks] dynamicLinkFromCustomSchemeURL:url]; [[FIRDynamicLinks dynamicLinks] dynamicLinkFromCustomSchemeURL:url];
if (dynamicLink && dynamicLink.url) { if (dynamicLink && dynamicLink.url) {
@ -124,7 +129,8 @@ RCT_EXPORT_METHOD(getInitialLink:(RCTPromiseResolveBlock)resolve rejecter:(RCTPr
if (self.bridge.launchOptions[UIApplicationLaunchOptionsURLKey]) { if (self.bridge.launchOptions[UIApplicationLaunchOptionsURLKey]) {
NSURL* url = (NSURL*)self.bridge.launchOptions[UIApplicationLaunchOptionsURLKey]; NSURL* url = (NSURL*)self.bridge.launchOptions[UIApplicationLaunchOptionsURLKey];
[self handleInitialLinkFromCustomSchemeURL:url resolver:resolve rejecter:reject]; [self handleInitialLinkFromCustomSchemeURL:url resolver:resolve rejecter:reject];
} else if(installLink) {
[self handleInitialLinkFromCustomSchemeURL:installLink resolver:resolve rejecter:reject];
} else { } else {
NSDictionary *userActivityDictionary = NSDictionary *userActivityDictionary =
self.bridge.launchOptions[UIApplicationLaunchOptionsUserActivityDictionaryKey]; self.bridge.launchOptions[UIApplicationLaunchOptionsUserActivityDictionaryKey];