假设: 我有一个自定义URL缩短器,重定向到branch.io长URL。 该自定义网址域已在我的应用的Universal Links授权文件中注册。 当用户点击一个短链接时,应用程序会打开并调用应用程序:continueUserActivity:restorationHandler:... 在该方法中,我获得了位于短链接后面的重定向URL(分支),基于新链接创建新的NSUserActivity并调用" continueUserActivity"来自Branch SDK的方法(使用新活动作为参数)。
问题是来自Branch SDK的回调不会返回与该链接相关的任何内容。它返回就像没有传递URL一样。
如果我硬编码来自重定向的链接并立即调用Branch SDK,而不等待重定向响应,那么一切正常。我认为这与分支SDK中的时间有关。
问题是:我如何让Branch识别链接,并在使用上述重定向方案时将我需要的params还给我? (我想使用自己的URL缩短程序,而不是分支机构的缩写程序)
答案 0 :(得分:0)
在确定是否需要处理Branch链接时,Branch会检查以验证NSUserActivity的类型是NSUserActivityTypeBrowsingWeb。如果是,则Branch检查.webpageURL以确定它是否为Branch链接。如果不是,Branch知道没有点击分支链接。
要在打开应用程序后手动将分支链接传递到SDK,还有其他两种可用的功能:.continue和.handleDeepLink。
<强>。继续强>
let activity = NSUserActivity(activityType: "NSUserActivityTypeBrowsingWeb")
activity.webpageURL = URL(string: "https://testbed-swift.app.link/77Q527xswy")
Branch.getInstance().continue(activity);
<强> .handleDeepLink 强>
Branch.getInstance().handleDeepLink(URL(string: "https://testbed-swift.app.link/77Q527xswy"))
如果您调用其中一种方法,Branch SDK将处理传入的分支链接。如果这些方法不适合您,我会检查以确认您实际上是在传递代码中的工作分支链接并且不是您用来打开应用程序的短链接。