Firebase 动态 link 未打开应用程序 iOS 14
Firebase dynamic link not opening app iOS 14
我正在尝试创建动态 links 作为我的应用推荐系统的一部分。我相信我已成功创建 links,但是每当我在 运行 我的应用程序(我被告知应该只打开该应用程序)时从我的笔记应用程序中单击一个时,我都会被定向到 Safari 页面然后是应用商店。这让我相信我的应用程序出于任何原因根本没有处理这种动态。
我正在使用自定义域 URI 前缀,特别是 https://mywebsite.com/invite,这里是创建动态 link
的完整代码
guard let uid = Auth.auth().currentUser?.uid else {return}
let link = URL(string: "https://mywebsite.com/invite/?invitedby=\(uid)")
let referralLink = DynamicLinkComponents(link: link!, domainURIPrefix: "https://mywebsite.com/invite")
referralLink?.iOSParameters = DynamicLinkIOSParameters(bundleID: "myBundleId")
referralLink?.iOSParameters?.minimumAppVersion = "1.0"
referralLink?.iOSParameters?.appStoreID = "123456789"
referralLink?.shorten { (shortURL, warnings, error) in
guard let referURL = shortURL else {
Service.showAlert(on: self, style: .alert, title: "Link Error", message: "We were unable to retreive your referral link at this time.")
return
}
let activityVC = UIActivityViewController(activityItems: [referURL], applicationActivities: nil)
UIApplication.shared.windows.first?.rootViewController?.present(activityVC, animated: true, completion: nil)
}
我从 Firebase 文档中获取的据称旨在处理传入动态 link 的代码如下。
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any]) -> Bool {
return application(app, open: url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String, annotation: "")
}
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
let handled = DynamicLinks.dynamicLinks().handleUniversalLink(userActivity.webpageURL!) { (dynamicLink, error) in
if (dynamicLink != nil) && !(error != nil) {
self.handleDynamicLink(dynamicLink)
}
}
return handled
}
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
if let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url) {
return handleDynamicLink(dynamicLink)
}
return false
}
除了我的代码,我还确保在我的 info.plist 中,我在 FirebaseDynamicLinksCustomDomains 键下列出了“https://mywebsite.com/invite”,我已将我的应用程序包添加为URL 键入并已将 applinks:mywebsite.com 添加到我的应用关联域。
我检查了其他多个帖子,我不太确定这里出了什么问题。如果有人能阐明任何潜在的问题,那就太好了。
您正在创建 link 错误。
您需要设置:
let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: "Firebase short link goes here")
let iOSParams = DynamicLinkIOSParameters(bundleID: "IOS app bundle id goes here")
iOSParams.customScheme = "url scheme" // for ios // forandroid firebase 有不同的 属性
我正在尝试创建动态 links 作为我的应用推荐系统的一部分。我相信我已成功创建 links,但是每当我在 运行 我的应用程序(我被告知应该只打开该应用程序)时从我的笔记应用程序中单击一个时,我都会被定向到 Safari 页面然后是应用商店。这让我相信我的应用程序出于任何原因根本没有处理这种动态。
我正在使用自定义域 URI 前缀,特别是 https://mywebsite.com/invite,这里是创建动态 link
的完整代码 guard let uid = Auth.auth().currentUser?.uid else {return}
let link = URL(string: "https://mywebsite.com/invite/?invitedby=\(uid)")
let referralLink = DynamicLinkComponents(link: link!, domainURIPrefix: "https://mywebsite.com/invite")
referralLink?.iOSParameters = DynamicLinkIOSParameters(bundleID: "myBundleId")
referralLink?.iOSParameters?.minimumAppVersion = "1.0"
referralLink?.iOSParameters?.appStoreID = "123456789"
referralLink?.shorten { (shortURL, warnings, error) in
guard let referURL = shortURL else {
Service.showAlert(on: self, style: .alert, title: "Link Error", message: "We were unable to retreive your referral link at this time.")
return
}
let activityVC = UIActivityViewController(activityItems: [referURL], applicationActivities: nil)
UIApplication.shared.windows.first?.rootViewController?.present(activityVC, animated: true, completion: nil)
}
我从 Firebase 文档中获取的据称旨在处理传入动态 link 的代码如下。
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any]) -> Bool {
return application(app, open: url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String, annotation: "")
}
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
let handled = DynamicLinks.dynamicLinks().handleUniversalLink(userActivity.webpageURL!) { (dynamicLink, error) in
if (dynamicLink != nil) && !(error != nil) {
self.handleDynamicLink(dynamicLink)
}
}
return handled
}
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
if let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url) {
return handleDynamicLink(dynamicLink)
}
return false
}
除了我的代码,我还确保在我的 info.plist 中,我在 FirebaseDynamicLinksCustomDomains 键下列出了“https://mywebsite.com/invite”,我已将我的应用程序包添加为URL 键入并已将 applinks:mywebsite.com 添加到我的应用关联域。
我检查了其他多个帖子,我不太确定这里出了什么问题。如果有人能阐明任何潜在的问题,那就太好了。
您正在创建 link 错误。
您需要设置:
let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: "Firebase short link goes here")
let iOSParams = DynamicLinkIOSParameters(bundleID: "IOS app bundle id goes here")
iOSParams.customScheme = "url scheme" // for ios // forandroid firebase 有不同的 属性