【发布时间】: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¶m2=my_pw¶m3=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¶m2=my_pw¶m3=my_code";
"~tags" = (
REDACTED,
REDACTED
);
}
在 branch.io 仪表板的 Liveview 部分的事件选项卡中,我在“会话引用链接 URL”列下看到以下内容:
https://REDACTED.app.link/rlaJz0QU5K?param1=my_name¶m2=my_pw¶m3=my_code
当唯一的区别是查询字符串参数的名称时,为什么我会看到这种不同的行为?为了它的价值,我尝试创建一个新的快速链接并尝试同样的事情,但结果同样令人遗憾。
【问题讨论】: