【问题标题】:Get reference code with deeplink url through app store通过应用商店获取带有深度链接 url 的参考代码
【发布时间】: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


【解决方案1】:

使用Firebase Dynamic links

使用动态链接,您的用户可以在他们打开链接的平台上获得最佳体验。如果用户在 iOS 或 Android 上打开动态链接,他们可以直接转到您的本机应用程序中的链接内容。如果用户在桌面浏览器中打开相同的动态链接,他们可以被带到您网站上的等效内容。

此外,动态链接适用于应用安装:如果用户在 iOS 或 Android 上打开动态链接但未安装您的应用,系统会提示用户安装;然后,安装后,您的应用程序将启动并可以访问该链接。

【讨论】:

  • 感谢您的回答。但我认为当我们仅从 Firebase 动态链接邀请和接收时它会起作用。目前我们仅从服务器创建推荐链接。
  • @VijayKumar 你可以使用firebase REST API
猜你喜欢
  • 1970-01-01
  • 2021-08-25
  • 2015-04-28
  • 1970-01-01
  • 2017-11-18
  • 2012-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多