Я использую 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"]
Благодарим за ответ. Да, я пробовал через почту. На этом, когда я нажимаю ссылку из письма. Приложение открывается, но перенаправление не происходит (не получает параметр). Но когда приложения открываются через app.link, демонстрируя глубину iOS и возможность открытия приложения вверху, открывая приложение через эту ссылку, я получаю параметры и перенаправление. Я проверяю параметр в методе didFinishLaunchingWithOptions класса AppDelegate. –
В разделе «События» раздела «Liveview» на панели мониторинга, когда приложение открывается при нажатии общей ссылки, «URL-адрес ссылки на сеанс» получает нуль этой соответствующей записи. –
Хммм ... 'didFinishLaunchingWithOptions' - это правильное место для проверки этого. Можно ли записать запись на экране, что произойдет, когда вы нажмете ссылку из письма? –