分支.io:添加的元数据参数不能用于路由:IOS Deep Link



我一直在Xcode 8, swift, iOS9.3中使用Branch SDK。

当创建链接并通过Airdrop传递时,添加的参数没有进入"params变量:

"
branch.initSession(launchOptions: launchOptions, isReferrable: true, andRegisterDeepLinkHandler: {(params : [AnyHashable : Any]?, error) -> Void in

当打印"params"时:

 ▿ Optional<Dictionary<AnyHashable, Any>>
  ▿ some : 2 elements
    ▿ 0 : 2 elements
      ▿ .0 : AnyHashable("+clicked_branch_link")
        - value : "+clicked_branch_link"
      - .1 : 0
    ▿ 1 : 2 elements
      ▿ .0 : AnyHashable("+is_first_session")
        - value : "+is_first_session"
      - .1 : 0

我创建的链接:

 branchUniversalObject = BranchUniversalObject(canonicalIdentifier: "item/1")
        branchUniversalObject.title = "Meet Mr. Squiggles"
        branchUniversalObject.contentDescription = "Your friend Josh has invited you to meet his awesome monster, Mr. Squiggles!"
        branchUniversalObject.imageUrl = "https://example.com/monster-pic-12345.png"
        branchUniversalObject.addMetadataKey("userId", value: "12345")
        branchUniversalObject.addMetadataKey("userName", value: "Josh")
        branchUniversalObject.addMetadataKey("monsterName", value: "Mr. Squiggles")
        branchUniversalObject.addMetadataKey("product_picture", value: "Mr. Squiggles product_picture")
        branchUniversalObject.automaticallyListOnSpotlight = true
        branchUniversalObject.userCompletedAction(BNCRegisterViewEvent)
        linkProperties = BranchLinkProperties()
        linkProperties.feature = "share"
        linkProperties.addControlParam("$desktop_url", withValue: "http://example.com/home")
        linkProperties.addControlParam("$ios_url", withValue: "http://example.com/ios")
branchUniversalObject.getShortUrl(with: linkProperties,  andCallback: { (optUrl: String?, error: Error?) in
            if error == nil, let url = optUrl {
                print("got my Branch link to share: %@", url)
                DispatchQueue.main.async {
                    self.branchUniversalObject.showShareSheet(with: self.linkProperties,
                                                              andShareText: "Super amazing thing I want to share!",
                                                              from: self) { (activity: String?, success: Bool) in
                                                                print("done showing share sheet! : (success)")
                    }
                }
            }
        })

如何获取添加的metaDataKey作为参数时,应用程序通过DeepLink打开,如:params["product_picture"]

Alex from Branch here: +clicked_branch_link: 0参数意味着SDK没有检测到该设备的任何链接。这就是为什么你不能拿回你的元数据。

这是否只发生在你通过AirDrop共享链接时?您是否可以尝试通过Notes或Messages打开链接,看看您的元数据是否按预期返回?

最新更新