【发布时间】:2018-01-02 09:53:07
【问题描述】:
当我通过构建新版本来更新我的应用程序时,会调用 openURL 方法。但是当我点击动态链接并在之后进行更新时,不再调用 openURL 方法。
有人可以解释为什么会这样吗?
这是我想用 openURL 方法做事的代码/
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary<NSString *, id> *)options {
// Sends the URL to the current authorization flow (if any) which will
// process it if it relates to an authorization response.
if ([_currentAuthorizationFlow resumeAuthorizationFlowWithURL:url]) {
_currentAuthorizationFlow = nil;
return YES;
}
FIRDynamicLink *dynamicLink = [[FIRDynamicLinks dynamicLinks] dynamicLinkFromCustomSchemeURL:url];
NSString *userID = [[NSUserDefaults standardUserDefaults] stringForKey:@"xx"];
NSString *firstTimeAppOpened = [[NSUserDefaults standardUserDefaults] stringForKey:@"xxx"];
if (dynamicLink != nil) {
if ([dynamicLink.url.absoluteString length] != 0) {
NSLog(@"App opened with link: %@", dynamicLink);
NSString *snippet = [NSString stringWithFormat:@"URLScheme: Received dynamic firebase link: %@", dynamicLink.url.absoluteString];
NSString *category = @"DYNAMIC_LINK";
NSString *pathFromURL = [dynamicLink.url.absoluteString lastPathComponent];
[SiteConnector sendAuditWithSnippet:snippet inCategory:category];
NSString *firstTimeAppOpened = [[NSUserDefaults standardUserDefaults] stringForKey:@"FirstTimeAppOpened"];
if ([dynamicLink.url.absoluteString rangeOfString:@"murat"].location == NSNotFound) {
[self dynamicLinkBehaviour:pathFromURL second:dynamicLink.url absolutePath:nil];
} else {
if (firstTimeAppOpened == nil) {
[self onboardingDynamicLink:dynamicLink.url.absoluteString];
}
}
}
else {
if (userID == nil && firstTimeAppOpened == nil) {
[self openWelcomeScreen];
}
}
}
NSString *valueToSave = @"yes";
[[NSUserDefaults standardUserDefaults] setObject:valueToSave forKey:@"FirstTimeLoggedIn"];
[[NSUserDefaults standardUserDefaults] synchronize];
return [[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
annotation:options[UIApplicationOpenURLOptionsAnnotationKey]];
}
【问题讨论】:
-
你想用 openURL 打开一个 url 吗?
-
@SandipGill 是的,当应用程序第一次启动时,我需要进行检查。但是 openURL 方法仅在我下载应用程序以及进行更新时调用(通过在之前的安装之上安装)。但是,当我使用 firebase 动态链接下载应用程序时,它可以工作,但当我在其之上进行更新时,它就不行了。
-
所以 firebase 动态链接做了一些奇怪的事情。在对使用 firebase 动态链接进行的下载进行上述更新后,它不会打开 openURL 方法。
-
好的,可以分享一下代码吗?
-
@SandipGill 我已将 openURL 方法添加到此“问题”中。
标签: ios objective-c firebase firebase-dynamic-links