在 dynamicLinks.handleUniversalLink(url) 的回调中接收到 nil
Receiving nil in callback of dynamicLinks.handleUniversalLink(url)
我正在努力接收 firebase 动态链接。在 App delegate 的 restorationHandler 方法中,我调用了 Firebase DynamicLinks 的 DynamicLinks.dynamicLinks().handleUniversalLink(url) 方法来从 shortlink 中获取实际的 link。
但是在这个方法的回调中,我在动态 link 中收到 nil。因此,我无法从回调中收到的动态 link 中获取 url。谁能帮我弄清楚为什么它返回零。
func application(_ application: UIApplication, continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
if let incomingURL = userActivity.webpageURL {
// it prints the passed url and working fine
debugPrint("Imcoing Url is: \(incomingURL.absoluteString)")
let linkHandled = DynamicLinks.dynamicLinks().handleUniversalLink(incomingURL) { (dynamicLink, error) in
guard error == nil else {
debugPrint("Error Found: \(error!.localizedDescription)")
return
}
//
//
if let dynamiclink = dynamicLink, let _ = dynamiclink.url {
// but below function call is not called beacause dynamicLink coming in
// callback is nil
self.handleIncomingDynamicLink(dynamiclink)
}
}
if linkHandled {
return true
} else {
// do other stuff to incoming URL?
return false
}
}
return false
}
我找到了一种方法 Expand a short URL in Swift 来获取实际的 url 或简短的查询参数 url 这在我的例子中是零,因为我在完成时收到了 dynamiclink
处理程序
DynamicLinks.dynamicLinks().handleUniversalLink(incomingURL) { (dynamicLink, error) in
//Both dynamicLink and error were nil here in my case
}
无。这些代码行将执行相同的操作,以便从短 URL.
中获取实际的 url 或查询参数
URLSession.shared.dataTask(with: incomingURL) { (data, response, error) in
if let actualURL = response?.url {
// you will get actual URL from short link here
// e.g short url was
// https://sampleuniversallink.page.link/hcabcx2fdkfF5U
// e.g actual url will be
// https://www.example.com/somePage?quertItemkey=quertItemvalue...
}
}.resume()
我遇到了同样的问题,对我来说,原因是我忘记将我的自定义 url 添加到我的 info.plist 中,如下所述:
https://rnfirebase.io/dynamic-links/usage#dynamic-links-with-custom-domains
这是您应该添加到您的 info.plist 替换字符串的片段的预览 link url.
<key>FirebaseDynamicLinksCustomDomains</key>
<array>
<string>https://custom.domain.io/bla</string>
<string>https://custom.domain.io/bla2</string>
</array>
我没有使用 React Native,但该解决方案也适用于常规 iOS 实施。
我正在努力接收 firebase 动态链接。在 App delegate 的 restorationHandler 方法中,我调用了 Firebase DynamicLinks 的 DynamicLinks.dynamicLinks().handleUniversalLink(url) 方法来从 shortlink 中获取实际的 link。 但是在这个方法的回调中,我在动态 link 中收到 nil。因此,我无法从回调中收到的动态 link 中获取 url。谁能帮我弄清楚为什么它返回零。
func application(_ application: UIApplication, continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
if let incomingURL = userActivity.webpageURL {
// it prints the passed url and working fine
debugPrint("Imcoing Url is: \(incomingURL.absoluteString)")
let linkHandled = DynamicLinks.dynamicLinks().handleUniversalLink(incomingURL) { (dynamicLink, error) in
guard error == nil else {
debugPrint("Error Found: \(error!.localizedDescription)")
return
}
//
//
if let dynamiclink = dynamicLink, let _ = dynamiclink.url {
// but below function call is not called beacause dynamicLink coming in
// callback is nil
self.handleIncomingDynamicLink(dynamiclink)
}
}
if linkHandled {
return true
} else {
// do other stuff to incoming URL?
return false
}
}
return false
}
我找到了一种方法 Expand a short URL in Swift 来获取实际的 url 或简短的查询参数 url 这在我的例子中是零,因为我在完成时收到了 dynamiclink
处理程序
DynamicLinks.dynamicLinks().handleUniversalLink(incomingURL) { (dynamicLink, error) in
//Both dynamicLink and error were nil here in my case
}
无。这些代码行将执行相同的操作,以便从短 URL.
中获取实际的 url 或查询参数URLSession.shared.dataTask(with: incomingURL) { (data, response, error) in
if let actualURL = response?.url {
// you will get actual URL from short link here
// e.g short url was
// https://sampleuniversallink.page.link/hcabcx2fdkfF5U
// e.g actual url will be
// https://www.example.com/somePage?quertItemkey=quertItemvalue...
}
}.resume()
我遇到了同样的问题,对我来说,原因是我忘记将我的自定义 url 添加到我的 info.plist 中,如下所述:
https://rnfirebase.io/dynamic-links/usage#dynamic-links-with-custom-domains
这是您应该添加到您的 info.plist 替换字符串的片段的预览 link url.
<key>FirebaseDynamicLinksCustomDomains</key>
<array>
<string>https://custom.domain.io/bla</string>
<string>https://custom.domain.io/bla2</string>
</array>
我没有使用 React Native,但该解决方案也适用于常规 iOS 实施。