Branch.io : Добавленные параметры метаданных не отображаются для маршрутизации: IOS Deep Link

#ios #swift #xcode7 #branch.io #deeplink

#iOS #swift #xcode7 #branch.io #глубокая ссылка

Вопрос:

Я использую Branch SDK в Xcode 8, swift, iOS9.3.

При создании ссылки и прохождении через Airdrop добавленные параметры не попадают в «переменную параметров :

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

при печати «параметры» его печати :

   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)")
                    }
                }
            }
        })
  

Как получить добавленный метаданный в качестве параметра при открытии приложения через DeepLink, например: params[«product_picture»]

Ответ №1:

Алекс из ветки здесь: clicked_branch_link: 0 параметр означает, что SDK не обнаруживает никакой ссылки для этого устройства. Вот почему вы не получаете свои метаданные обратно.

Это происходит только в том случае, если вы делитесь ссылкой через AirDrop? Не могли бы вы попробовать открыть ссылку через заметки или сообщения и посмотреть, вернутся ли ваши метаданные, как ожидалось?

Комментарии:

1. Спасибо за ответ. Да, я пробовал через mail. При этом, когда я нажимаю на ссылку из почты. Приложение открывается, но перенаправление не выполняется (не получает параметр). Но когда приложения открываются через app.link, показывая глубокие просмотры iOS и возможность открытия приложения вверху, при открытии приложения по этой ссылке я получаю параметры, и происходит перенаправление. Я проверяю параметр в методе didFinishLaunchingWithOptions класса AppDelegate.

2. В категории «События» раздела «Liveview» на панели инструментов, когда приложение открывается при нажатии на общую ссылку, «URL ссылки, ссылающейся на сеанс», получает nil для соответствующей записи.

3. Хммм … didFinishLaunchingWithOptions это правильное место для проверки этого. Возможно ли записать снимок экрана того, что происходит, когда вы нажимаете на ссылку из mail?