【发布时间】:2017-07-23 14:01:15
【问题描述】:
我使用Branch 创建深层链接。我添加了一个新的控制参数 ios_has_app_url 和 ios_url。安装应用程序时单击深层链接,然后一切正常,但是如果您在设备上未安装应用程序时单击深层链接,然后在启动期间,我看到浏览器而不是打开 ios_url(App Store 链接) ,它会尝试打开 ios_has_app_url。我该如何解决?
private func createDeepLink(_ card: CardModel) -> (branchUniversalObject: BranchUniversalObject, branchLinkProperties: BranchLinkProperties) {
let branchUniversalObject = BranchUniversalObject(canonicalIdentifier: ("cardId/\(card.id)"))
branchUniversalObject.title = card.title
branchUniversalObject.contentDescription = ""
branchUniversalObject.imageUrl = card.photoURLsProperties.originalURL
branchUniversalObject.addMetadataKey(CardKeys.cardID.rawValue, value: card.id)
branchUniversalObject.addMetadataKey("placeAvatarURLString", value: card.photoURLsProperties.originalURL)
branchUniversalObject.addMetadataKey("title", value: card.title)
branchUniversalObject.addMetadataKey("isAutoGeneratedCard", value: "false")
let fullLocationName = card.location.fullLocationName
branchUniversalObject.addMetadataKey("fullLocationName", value: fullLocationName)
branchUniversalObject.addMetadataKey(CardKeys.ownerID.rawValue, value: card.ownerID)
branchUniversalObject.addMetadataKey(ParametersKeywords.type.rawValue, value: ModeKeywords.shareCard.rawValue)
branchUniversalObject.addMetadataKey("availableSeats", value: card.peopleProperties.availableSeats.description)
let coordinate = card.location.coordinate
branchUniversalObject.addMetadataKey("latitude", value: coordinate.latitude.description)
branchUniversalObject.addMetadataKey("longitude",value: coordinate.longitude.description)
let linkProperties = BranchLinkProperties()
linkProperties.feature = "sharing"
linkProperties.addControlParam("$desktop_url", withValue: "http://www.appname.com")
linkProperties.addControlParam("$ios_has_app_url", withValue: "appname://")
linkProperties.addControlParam("$ios_url", withValue: "https://itunes.apple.com/app/idXXXXXXXXXXXXXXX")
return (branchUniversalObject: branchUniversalObject, branchLinkProperties: linkProperties)
}
更新:我的目标是,当点击深层链接时,如果安装了应用程序,则打开应用程序,如果没有,则打开应用商店链接。
更新 1: 我像这样更改了我的代码,如果我只是点击链接,它会打开 App Store,如果我使用 3D Touch,那么我可以选择在哪里打开这个链接。如果安装了应用程序并单击链接立即打开应用程序(或至少浏览器中的一个链接,但有一个打开应用程序的选项)并且如果未安装应用程序,那么是否可以这样做点击链接,进入 App Store 应用页面。
let linkProperties = BranchLinkProperties()
linkProperties.feature = "sharing"
linkProperties.addControlParam("$desktop_url", withValue: "http://www.appname.com")
linkProperties.addControlParam("$ios_has_app_url", withValue: "https://appname.app.link/")
linkProperties.addControlParam("$ios_url", withValue: "itms-apps://itunes.apple.com/app/idXXXXXX")
【问题讨论】:
-
将您的 https 更改为 itms,看看是否有帮助。
-
@MwcsMac 我做了,但没有帮助
标签: ios swift deep-linking branch.io