2016-09-26 3 views
0

私のアプリケーションのディープリンク作成にBranch.ioを使用しました。しかし、アプリが起動されるたびにディープリンクコントローラにリダイレクトされます。Branch.ioアプリが起動するたびにディープリンクによりディープリンクが開かれています

私は、次のコードを使用している - あなたは、あなたが使用する必要があり、そのdocsによると

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

からinstantiateViewController...を呼び出すべきではありません。.. (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

Branch *branch = [Branch getInstance]; 

HomeDetailsViewController *controller = (HomeDetailsViewController*)[[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"HomeDetailsViewControllerID"]; 

[branch registerDeepLinkController:controller forKey:@"bucketId"]; 
[branch initSessionWithLaunchOptions:launchOptions automaticallyDisplayDeepLinkController:YES]; 

// Respond to Universal Links - Branch io 
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *restorableObjects))restorationHandler { 
    BOOL handledByBranch = [[Branch getInstance] continueUserActivity:userActivity]; 

    return handledByBranch; 
} 

-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options NS_AVAILABLE_IOS(9_0) { 

    [[Branch getInstance] handleDeepLink:url]; 

    [self application:app 
     processOpenURLAction:url 
      sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey] 
        annotation:options[UIApplicationOpenURLOptionsAnnotationKey] 
        iosVersion:9]; 

    return YES; 
} 



-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { 
    [[Branch getInstance] handleDeepLink:url]; 

    [self application:application 
     processOpenURLAction:url 
      sourceApplication:sourceApplication 
        annotation:annotation 
        iosVersion:8]; 

    return YES; 
} 

答えて

0

を代わりに次のコード:

Branch *branch = [Branch getInstance]; 
[branch initSessionWithLaunchOptions:launchOptions andRegisterDeepLinkHandler:^(NSDictionary *params, NSError *error) { 
    if (!error && params) { 
     // params are the deep linked params associated with the link that the user clicked -> was re-directed to this app 
     // params will be empty if no data found 
     // ... insert custom logic here ... 
     NSLog(@"params: %@", params.description); 
    } 
}]; 
+0

私もこのコードを実装しましたが、リンクがクリックされていない場合でも、このパラメータは 'clicked_branch_link'のパラメータにyesを返していました。私はそれが好みのどこかで価値を保存すると思う。しかし、テスト飛行でテストしたところ、うまくいきました。 –

+0

Alex from Branch.io:広範囲にテストしていた場合、そのデバイスIDに対して複数のリンククリックがキューに入れられていて、SDKがそれらを順番に消去する必要があった可能性があります。引き続き問題がある場合は、教えてください! –

+0

私は同じ問題を抱えていますが、どうすればクリーンアップできますか? @AlexBauer – ovidiur

関連する問題