2016-10-07 1 views
1

Я использую Branch SDK в Xcode 8, swift, iOS9.3.Branch.io: Добавленные параметры метаданных не получают для маршрутизации: IOS Deep Link

При создании ссылки и проходя через десантный, добавленные параметры не получает в «Params переменной:

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 

Mine создана ссылка:

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"]

ответ

0

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

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

+0

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

+0

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

+0

Хммм ... 'didFinishLaunchingWithOptions' - это правильное место для проверки этого. Можно ли записать запись на экране, что произойдет, когда вы нажмете ссылку из письма? –

Смежные вопросы