我正在尝试通过以下代码获取动态链接以缩短我的网址:
guard let link = URL(string: "https://myapp.com") else { return }
let dynamicLinksDomainURIPrefix = "https://app.myapp.com/link"
let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPrefix)
linkBuilder?.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.myapp.ios")
guard let longDynamicLink = linkBuilder?.url else { return }
print("The long URL is: \(longDynamicLink)")
let options = DynamicLinkComponentsOptions()
options.pathLength = .short
linkBuilder?.options = options
linkBuilder?.shorten() { url, warnings, error in
guard let url = url, error != nil else { return }
print("The short URL is: \(url)")
}
它可以很好地打印长URL,但是永远不会调用下面的行(对于短URL):print("The short URL is: \(url)")
因为url
返回nil,我也不知道为什么。在指南或在线上找不到的任何内容都无法将我引向正确的方向。我究竟做错了什么??
最佳答案
我认为是因为以下错误:
guard let url = url, error != nil else { return }
您说的是确保存在一个非nil的URL,并确保存在错误。我认为Firebase文档是错误的。相反,您想要:
guard let url = url, error == nil else { return }
关于ios - Firebase动态链接不会缩短URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63643673/