我已经使用链接https://firebase.google.com/docs/dynamic-links/ios对 firebase 集成进行了更改,以下是处理 URL 并将用户导航到相应屏幕的处理。对于低于 9.0 的 iOS 版本,调用 appdelegate 的 openURL 方法,我能够获取 URL。但是对于 iOS 9.0 及更高版本,我在应用程序委托的 ContinueUserActivity 方法中得到调用,并且我得到了 dynamicLink.url 的 nil 值。
我无法理解无法获取 URL 的原因。
- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray * _Nullable))restorationHandler {
NSLog(@"Short URl : %@",userActivity.webpageURL);
__weak AppDelegate *weakSelf = self;
BOOL handled = [[FIRDynamicLinks dynamicLinks]
handleUniversalLink:userActivity.webpageURL
completion:^(FIRDynamicLink * _Nullable dynamicLink,
NSError * _Nullable error) {
AppDelegate *strongSelf = weakSelf;
[strongSelf handleReceivedLink:dynamicLink];
}];
return handled;
}
-(void)handleReceivedLink:(FIRDynamicLink*)dynamicLink{
NSString* urlString = [NSString stringWithFormat:@"%@",dynamicLink.url];
NSLog(@"Extended URL : %@",urlString);
}