Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 单击分支链接并打开我的应用程序时,我如何访问元数据。。。?_Ios_Swift_Branch.io - Fatal编程技术网

Ios 单击分支链接并打开我的应用程序时,我如何访问元数据。。。?

Ios 单击分支链接并打开我的应用程序时,我如何访问元数据。。。?,ios,swift,branch.io,Ios,Swift,Branch.io,以下是我准备并向用户共享分支链接的方式: let branch = BranchUniversalObject(canonicalIdentifier: UUID().uuidString) branch.title = self.territory.name branch.metadata = self.territory.dictionary let properties = BranchLinkProperties()

以下是我准备并向用户共享分支链接的方式:

        let branch = BranchUniversalObject(canonicalIdentifier: UUID().uuidString)
        branch.title = self.territory.name
        branch.metadata = self.territory.dictionary

        let properties = BranchLinkProperties()
        properties.controlParams = self.territory.dictionary

        branch.getShortUrl(with: properties) { string, error in

            if let string = string, let url = URL(string: string) {

                let controller = UIActivityViewController.controller(activityItem: url, from: sender, traitCollection: self.traitCollection)

                alert.dismiss(animated: true)
                self.present(controller, animated: true)
            }
        }

然后我想访问我传递给该链接的参数,但我不知道如何。。。有什么帮助吗?

当您将Branch集成到Xcode项目中(如此处的Branch文档所述:)时,您可以在AppDelegate.swift文件的didFinishLaunchingWithOptions中添加代码来初始化Branch SDK(以下是一个示例:)

“params”字典将在此initSession调用的deepLinkHandler回调中可用。此params字典包含与用于打开应用程序的分支链接相关联的键值对,当然假设该应用程序是通过分支链接单击打开的。通过检查params字典的+clicked_Branch_link参数,可以确定应用程序是否因分支链接单击而打开

每当应用程序处于活动状态并且在AppDelegate的openURL和continueUserActivity函数中触发相应的分支调用时,也将调用在didFinishLaunchingWithOptions中注册的分支回调

除了在init回调中返回params字典外,Branch SDK还会将params保存在设备的本地存储中。通过调用getLatestReferringParams(此处描述:),可以在会话生命周期内访问这些保存的参数

有关代码示例,请查看SDK中包含的TestBed Swift应用程序:

  • 此示例应用也可在应用商店中获得:
如果您正在检查init回调中的+单击的\u branch\u链接,但发现该链接为0或“false”,则可能有多种原因:

  • 通常情况下,这是因为用于创建链接的分支密钥与应用程序配置使用的分支密钥不同(即,Live与Test密钥不匹配)
  • 从分支链接打开后,应用程序可能会触发警报或其他活动的显示,从而导致会话关闭。当应用程序再次激活时,新会话将不会由分支链接单击触发,因此参数字典将为空
  • 有时,合作伙伴使用实际上不是分支链接的URL进行测试。以下文档介绍了创建有效链接的不同方法:
  • 如果链接未正确触发,它将无法正常工作。分支链接在iOS上起到通用链接的作用,因此受到苹果对链接行为的限制。最重要的是,它们必须由最终用户使用。通用链接不能通过粘贴到浏览器地址栏来触发;通过从另一个链接重定向到它们;或者将它们包装在其他链接中
  • 正在点击链接的应用程序可能不支持通用链接。谷歌和Facebook广告,以及使用专属网络视图的应用程序,经常干扰通用链接。确保先将链接粘贴到物理设备上的便笺中,然后长按链接并从弹出菜单中选择“在应用程序中打开”选项来测试链接