如何用branch.io捕获参数?

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

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

遵循此处的文档。

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

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”?

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

当您生成链接(例如, http: initSessionWithLaunchOptions() )时,您可以设置所需的任何数据参数,并在initSessionWithLaunchOptions()调用initSessionWithLaunchOptions()它们返回(如此处所述 )。 您的回调数据可能如下所示:

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

如果您将查询附加到链接URL(例如, 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' } } 

看到这个问题: 解析URL字符串以获取键值的最佳方法是什么?

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


UPDATE

我认为您需要在应用中设置URL Schemes或Universal Links。

我在这里回答了有关URL Schemes的上一个问题,您可以在此处查看 branch.io关于Universal Links的文档


更新2

在您的示例输出中,您将访问XP作为此类params[@"XP"]但根据Alex的其他答案,您将使用params[@"data"][@"XP"]访问它

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