iOS App Delegate params 字典不包含任何相关链接

标签 ios swift deep-linking branch.io

我已将 Branch.io SDK 添加到我的 iOS 项目中。我有一个工作正常的自定义 URL 方案,我添加了工作正常的通用应用程序链接。

现在,我已在仪表板中启用了 iOS 应用程序,其中添加了自定义 URL 方案、用于下载应用程序的自定义 URL、应用程序前缀和 bundle 标识符。

在“快速链接”部分中,我创建了一个快速链接,其中有一个用于深层链接部分的 [“key”: “value”] 对,并再次添加了一个重定向到我的 jenkins,可以在其中下载 ipa。

现在,如果我通过在移动 safari 中复制/粘贴来访问该链接,而无需安装应用程序,我会正确地转到 Jenkins。

此时,我从 xcode 运行应用程序,并在应用程序委托(delegate)中运行

branch = Branch.getInstance()
    branch.initSession(launchOptions: launchOptions, andRegisterDeepLinkHandler: {params, error in
        if error == nil {
            // 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 ...
            print("params: %@", params as? [String: AnyObject] ?? {})
        } else {
            print(error?.localizedDescription ?? "")
        }
    })

问题在于 params 始终只包含两个参数:

params: %@ ["+clicked_branch_link": 0, "+is_first_session": 0]

我也实现了

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
    let branchHandled = branch.application(application,
                                                         open: url,
                                                         sourceApplication: sourceApplication,
                                                         annotation: annotation
    )

    if (!branchHandled) {
        // If not handled by Branch, do other deep link routing for the Facebook SDK, Pinterest SDK, etc

        var handled = false

        handled = //this is Facebook handling

        guard handled == false else { return true }
    } else {
        // do some stuff if it's coming from branch
    }

    return branchHandled
}

我的兴趣是让分支传递我的 ["key": "value"] 对,以便在此时将其像深层链接一样处理,但我不知道还可以尝试什么。

最佳答案

延迟深度链接失败可能是由于特定分支应用程序的分支 key 和分支链接不匹配。验证用于延迟深度链接的分支链接是使用 iOS 项目的 info.plist 中使用的相同分支 key 生成的。

关于iOS App Delegate params 字典不包含任何相关链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47512015/

相关文章:

android - 通过 NFC 标签深度链接到应用程序(特定 Activity )

ios - 应用程序于 5.1.1 合法 : Privacy - Data Collection and Storage 被拒绝

ios - SKSpriteNode zrotation M_PI真气人

ios - 具有动态按钮列表的操作表类型的 UIAlertViewController

arrays - 类型 'String?' 不符合协议(protocol) 'Equatable'

arrays - 按日期对数组中的对象进行排序

swift - 如何用几个相关的 CGPoint 数组构造 Swift 代码

iphone - 从 UIMenuController 中获取选定的文本

react-native - 如何在react-native中在外部播放器中打开视频网址

javascript - 检查应用程序是否存在于设备上