查询参数未传递到iOS App

时间:2018-03-08 17:44:25

标签: ios branch.io

使用branch.io和iOS分支SDK,我遇到的问题是iOS应用程序没有收到附加到branch.io快速链接的某些参数。以下是我采取的步骤

1)我在branch.io(https://REDACTED.app.link/rlaJz0QU5K)中定义了一个快速链接。

2)然后,我创建了一个使用该链接的测试HTML页面,以及一些查询参数。

3)对于与该快速链接相关联的iOS应用,我已经集成了branch.io SDK并遵循了所有说明。

4)根据添加的查询参数,我在移动浏览器中点击链接(从步骤2开始)时会看到奇怪的结果。

5)阅读this SO question并在接受的答案中尝试解决方案。它不起作用。

如果我使用下面的链接和查询参数,然后在移动浏览器中点击该链接,应用程序将按预期打开,但 参数似乎没有正确传递到iOS应用程序:

https://REDACTED.app.link/rlaJz0QU5K?username=my_name&password=my_pw&officecode=my_code

以下是iOS应用的日志输出:

params: {    "+clicked_branch_link" = 0;    "+is_first_session" = 0;}

请注意,查询字符串中的参数不存在。此外,branch.io仪表板的Liveview部分的Events选项卡中的“Session Refer Link URL”显示为“null”。

这个日志输出是通过在branch.io的iOS Objective C SDK集成指令上实现示例代码生成的:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: {
    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);
        }
    }];

    return TRUE;
}

接下来,我更改了HTML页面链接以使用不同的查询参数:

https://REDACTED.app.link/rlaJz0QU5K?param1=my_name&param2=my_pw&param3=my_code

如果我点击移动浏览器中的链接,应用程序会打开,参数会传递给应用程序,如日志输出中所示:

params: {
    "$marketing_title" = "REDACTED";
    "$one_time_use" = 0;
    "+click_timestamp" = 1520530852;
    "+clicked_branch_link" = 1;
    "+is_first_session" = 0;
    "+match_guaranteed" = 1;
    param1 = "my_name";
    param2 = "my_pw";
    param3 = "my_code";
    "~campaign" = "REDACTED";
    "~creation_source" = 1;
    "~feature" = marketing;
    "~id" = 499944929582264883;
    "~marketing" = 1;
    "~referring_link" = "https://REDACTED.app.link/rlaJz0QU5K?param1=my_name&param2=my_pw&param3=my_code";
    "~tags" =     (
        REDACTED,
        REDACTED
    );
}

在branch.io仪表板的Liveview部分的“事件”选项卡中,我在“会话引用链接URL”列下看到以下内容:

https://REDACTED.app.link/rlaJz0QU5K?param1=my_name&param2=my_pw&param3=my_code

当唯一的区别是查询字符串参数的名称时,为什么我会看到这种不同的行为?为了它的价值,我尝试创建一个新的快速链接并尝试同样的悲伤结果。

1 个答案:

答案 0 :(得分:0)

您的应用可能存在分支键错失匹配的可能性。 info.plist中使用的Branch键应该与创建链接的应用程序的Branch键匹配。

如需更多调查,请写下support@branch.io