ios Branch.io 自定义网址缩写和通用链接

x8diyxa7  于 2023-02-14  发布在  iOS
关注(0)|答案(1)|浏览(138)

假设:我有一个自定义URL缩短器,它会重定向到www.example.com长URL。该自定义URL域在我的应用的通用链接授权文件中注册。当用户点击短链接时,应用会打开并调用application:continueUserActivity:restorationHandler:...在该方法中,我会获取短链接背后的重定向URL(branch),基于新链接创建新的NSUserActivity,并从Branch SDK调用"continueUserActivity"方法(将新Activity作为参数)。branch.io long URL. That custom URL domain is registered in my app's entitlements file for Universal Links. When a user taps a short link, the app opens and calls application:continueUserActivity:restorationHandler:... In that method I get the redirect URL (branch) that stands behind the short link, create a new NSUserActivity based on the new link and call "continueUserActivity" method (with the new activity as a parameter) from Branch SDK.
问题是Branch SDK的回调不会返回任何连接到该链接的内容,它返回时就好像没有传递URL一样。
如果我对来自重定向的链接进行硬编码,并立即调用Branch SDK,而不等待重定向响应,那么一切都可以正常工作。
问题是:我怎样才能使分支机构识别链接,并返回使用上述重定向方案时所需的参数?(我想使用自己的URL缩短器,而不是分支机构的)

06odsfpq

06odsfpq1#

在确定是否需要处理分支链接时,分支会检查以验证NSUserActivity的类型是否为NSUserActivityTypeBrowsingWeb。如果是,分支会检查.webpageURL以确定它是否为分支链接。如果不是,分支会认为未单击任何分支链接。
要在以其他方式打开应用程序后手动将分支链接传递到SDK,有两个函数可用:.继续和.处理深度链接。

.继续

let activity = NSUserActivity(activityType: "NSUserActivityTypeBrowsingWeb")
    activity.webpageURL = URL(string: "https://testbed-swift.app.link/77Q527xswy")
    Branch.getInstance().continue(activity);

.深度句柄链接

Branch.getInstance().handleDeepLink(URL(string: "https://testbed-swift.app.link/77Q527xswy"))

如果您调用其中一个方法,分支SDK将处理传入的Branch链接。如果这些方法对您不起作用,我将检查以验证您是否确实在代码中传入了工作Branch链接,而不是您用来打开应用的短链接。

相关问题