ios - iOS 上的 Firebase 动态链接不起作用。动态链接网址始终为零
问题描述
我在 Firebase 中创建了许多带有自定义 URL 方案的链接,虽然我可以在 Notes 中选择链接时打开应用程序,但动态链接始终为零。
这是调用动态链接 api 的代码:
public struct FirebaseBridge {
public static func configure() {
FirebaseOptions.defaultOptions()?.deepLinkURLScheme = "mycustomurlscheme"
MyFirebase.configure(crashlyticsIncludeDeviceId: false)
}
public static func setPushMessagingDelegate(_ pushMessagingDelegate: MessagingDelegate) {
Messaging.messaging().delegate = pushMessagingDelegate
}
public static func openDynamicLinkFromURL(_ url: URL) -> Bool {
print(url.absoluteString)
if let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url) {
self.handleIncomingDynamicLink(dynamicLink)
return true
}
return false
}
public static func handleUniversalLinkFromURL(_ url: URL) -> Bool {
let handled = DynamicLinks.dynamicLinks().handleUniversalLink(url) { (dynamiclLnk, error) in
guard error == nil, let dynamicLink = dynamiclLnk else {
print("error")
return
}
print(dynamicLink)
print(dynamiclLnk?.url ?? "no URL")
FirebaseBridge.handleIncomingDynamicLink(dynamicLink)
}
return handled
}
private static func handleIncomingDynamicLink(_ dynamicLink: DynamicLink) {
guard let url = dynamicLink.url else {
print(dynamicLink)
return
}
print(url.absoluteString)
}
public static func performDiagnostics() {
DynamicLinks.performDiagnostics(completion: { diagnostic, error in
print(diagnostic)
})
}
}
这是AppDelegate中的相关代码:
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Keep this first at app launch.
FirebaseBridge.configure()
return true
}
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return FirebaseBridge.openDynamicLinkFromURL(url)
}
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
guard let url = userActivity.webpageURL else {
return false
}
return FirebaseBridge.handleUniversalLinkFromURL(url)
}
}
这是 performDiagnostics 调用的输出:
---- Firebase Dynamic Links diagnostic output start ----
Firebase Dynamic Links framework version 4.0.8
System information: OS iOS, OS version 13.3.1, model iPhone
Current date 2020-06-08 17:35:58 +0000
Device locale en-US (raw en_US), timezone America/Los_Angeles
Specified custom URL scheme is mycustomurlscheme and Info.plist contains such scheme in CFBundleURLTypes key.
AppID Prefix: prefix, Team ID: teamid, AppId Prefix equal to Team ID: YES
performDiagnostic completed successfully! No errors found.
---- Firebase Dynamic Links diagnostic output end ----
任何帮助,将不胜感激!
解决方案
推荐阅读
- java - 使用对象维护哈希图以避免重复的快速方法
- c# - 在 c# 中,'where T : class?' 是什么意思?意思是
- machine-learning - 如何在 Python 中将 Alexnet 的梯度存储为 numpy 数组(在每次迭代中)?
- java - Spring boot 在@MessageMapping 中获取域名
- r - 同时加载多个库
- php - 如何在 PHP 中使用 SMTP 发送电子邮件?
- python - Pandas datetime 函数获取季度末的日期
- jenkins - Jenkins中带冒号的空数组是什么?
- wix - Wix / WixSharp 安装程序。跟踪用户取消安装事件
- ios - 如何在 didSelectRow 中保存选择?