如何使用branch.io?

时间:2016-06-09 07:07:33

标签: ios deep-linking branch.io

我开始在iOS应用中使用https://branch.io/

我现在面临的问题是:如何使用参数捕获传入链接?

遵循文档here

我到了这一点,有了这个链接:

http://myapp.app.link/A1bcDEFgHi?XP=315.0,419.0

我的代码是:

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
    Branch *branch = [Branch getInstance];
    [branch initSessionWithLaunchOptions:launchOptions 
              andRegisterDeepLinkHandler:^(NSDictionary *params, NSError *error) {
        if (!error && params) {
            NSLog(@"Here is params: %@",params.description); // I need to replace this, with code to get XP!
        }
    }];

    return YES;
}    


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

    return handledByBranch;
}

以下是调试控制台中的内容:

2016-06-10 11:59:44.407 TheApp[1786:591391] Here is params: {
    "$identity_id" = 2712491317999770034;
    "$one_time_use" = 0;
    "+click_timestamp" = 1465529273;
    "+clicked_branch_link" = 1;
    "+is_first_session" = 0;
    "+match_guaranteed" = 1;
    XP = "315.0,419.0";
    "~creation_source" = "iOS SDK";
    "~id" = 211224109823923327;
}

现在问题是,使用(在应用程序内部)获取数据块的代码是什么:“315.0,419.0”?

2 个答案:

答案 0 :(得分:6)

亚历克斯与分支在这里:这是一个很好的问题,我们应该在我们的文档中做得更清楚!

当您生成链接(例如,http://myapp.app.link/A1bcDEFgHi)时,您可以设置所需的任何数据参数,并在initSessionWithLaunchOptions()调用中将其恢复(如文档here所述) 。您的回调数据可能如下所示:

{
    tags: [ 'tag1', 'tag2' ],
    channel: 'facebook',
    feature: 'dashboard',
    stage: 'new user',
    data: {
        mydata: 'something',
        foo: 'bar',
    }
}

如果您将查询附加到链接网址(例如http://myapp.app.link/A1bcDEFgHi?XP=315.0,419.0),我们只需捕获该参数并将其传递给您:

{
    tags: [ 'tag1', 'tag2' ],
    channel: 'facebook',
    feature: 'dashboard',
    stage: 'new user',
    data: {
        mydata: 'something',
        foo: 'bar',
        XP: '315.0,419.0'
    }
}

答案 1 :(得分:1)

请参阅此问题:Best way to parse URL string to get values for keys?

您还可以使用第三方框架来处理此问题。如果您正在使用Cocoapods,请转到here并搜索"查询"。

<强>更新

我认为您需要在应用中设置网址套餐或通用链接。

我之前回答了有关网址方案here的问题,您可以查看有关Universal Links here

的branch.io文档。

更新2

在您的示例输出中,您可以XP访问params[@"XP"],但根据Alex的其他答案,您可以使用params[@"data"][@"XP"]

访问它

Params只是一个字典,因此您可以像访问iOS中的任何其他字典一样访问它。