【问题标题】:Query Parameters Not Passed To iOS App查询参数未传递到 iOS 应用程序
【发布时间】:2018-03-08 17:44:25
【问题描述】:

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

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 部分的“事件”选项卡中的“会话引用链接 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

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

【问题讨论】:

    标签: ios branch.io


    【解决方案1】:

    您的应用可能存在分支键未命中匹配。 info.plist 中使用的 Branch 键应与创建链接的应用的 Branch 键匹配。

    如需更多调查,请发邮件至support@branch.io

    【讨论】:

    • 您好 Parth...感谢您的回答。我知道这不是一个真正的链接......我故意编辑了实际的链接名称,这样我就不会在我的 stackoverflow 问题中使用真正的链接。
    • 您好,很抱歉您的回复,我不知道不使用真实链接的意图。我已经编辑了我的答案,以便为您提供解决方案。
    • 您好 Parth... 我一直在与您在集成团队的同事 Gene 通信。如果你能和他一起追查我的票,你可以看到我发送的日志数据,以及一个 XCode 示例项目,可以在其中重现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    相关资源
    最近更新 更多