【发布时间】:2021-12-07 03:34:03
【问题描述】:
我的应用中有一些功能。如果用户从应用程序外部(来自消息、whatsapp 等)点击推荐链接,它将导航到应用程序,我正在使用参考代码制作注册 url。之后,我导航到注册屏幕并在 Web 视图中加载该注册 url,并在必填字段中显示推荐代码。(如果我们的应用程序安装在 iPhone 设备中,这一切都会发生)
但是我需要的是当应用程序没有安装并且我们点击推荐链接时- 如果未安装应用程序,则应重定向到应用程序商店,安装应用程序后应重定向到包含推荐代码的注册屏幕。
-(void)handelReferral:(NSString *)strReferral{
if ([[SuperClass sharedSingletonSuperClass] checkifStringNotNull:strReferral]) {
NSString *strReferralCode;
if ([strReferral rangeOfString:@"ref/"].location != NSNotFound) {
NSURLComponents *urlComponents = [NSURLComponents componentsWithURL:[NSURL URLWithString:strReferral]
resolvingAgainstBaseURL:NO];
NSArray *queryItems = urlComponents.queryItems;
if (queryItems.count > 0) {
NSString *queryValue = [self valueForKey:@"al" fromQueryItems:queryItems];
strReferralCode = [queryValue lastPathComponent];
} else {
strReferralCode = strReferral.lastPathComponent;
}
NSString *strRegisterUrl = [ConfigurationManager shared].data.strRegisterUrl;
NSString *finalRefUrl = [NSString stringWithFormat:@"%@?utm_campaign=app_refferal_ref/ref/%@&utm_medium=app&utm_source=app_refferal",strRegisterUrl,strReferralCode];
if ([self.ReferralDelegate respondsToSelector:@selector(userClickedOnReferralDelegate)]) {
[self.ReferralDelegate userClickedOnReferralDelegate];
} else {
if ([[SuperClass sharedSingletonSuperClass]isPhoneNumberIsAvailable] == false) {
NSLog(@"finalRefUrl=====%@",finalRefUrl);
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"isComingFromRef"];
[[NSUserDefaults standardUserDefaults] setValue:finalRefUrl forKey:@"finalRefUrl"];
[[NSUserDefaults standardUserDefaults] synchronize];
[ServiceGeneralNotifications sharedSingleton].isUserTryingToLogin = YES;
[[SuperClass sharedSingletonSuperClass] pushToLoginScreen];
}
}
}
}
}
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
[self callServiceToPostCampaignDataWithURL:userActivity.webpageURL];
if ([[SuperClass sharedSingletonSuperClass]checkifStringNotNull:[userActivity.webpageURL absoluteString]]) {
[self handelReferral:[userActivity.webpageURL absoluteString]];
}
【问题讨论】:
-
请提供足够的代码,以便其他人更好地理解或重现问题。
标签: ios objective-c app-store deep-linking