【问题标题】:Firebase dynamic link not opening app iOS 14Firebase动态链接未打开应用程序iOS 14
【发布时间】:2021-08-07 08:49:06
【问题描述】:

我正在尝试创建动态链接以作为我的应用推荐系统的一部分。我相信我成功地创建了链接,但是每当我在运行我的应用程序时从我的笔记应用程序中单击一个(我被告知应该只打开应用程序),我都会被定向到 Safari 页面,然后是 App Store。这让我相信无论出于何种原因,我的应用根本没有处理动态。

我正在使用自定义域 URI 前缀,特别是 https://mywebsite.com/invite,这是创建动态链接的完整代码

            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 文档中获取的据称旨在处理传入动态链接的代码如下。

    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 到我的应用关联域。

我检查了多个其他帖子,但我不太确定这里出了什么问题。如果有人能对任何潜在的问题有所了解,那就太好了。

【问题讨论】:

    标签: ios firebase firebase-dynamic-links


    【解决方案1】:

    您创建的链接错误。

    您需要设置:

    let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: "Firebase short link goes here")

    让 iOSParams = DynamicLinkIOSParameters(bundleID: "IOS app bundle id 放在这里")

    iOSParams.customScheme = "url scheme" // for ios // forandroid firebase 有不同的属性

    【讨论】:

      猜你喜欢
      • 2021-06-16
      • 1970-01-01
      • 2020-03-23
      • 2016-10-03
      • 1970-01-01
      • 2021-02-21
      • 1970-01-01
      • 2020-07-23
      • 1970-01-01
      相关资源
      最近更新 更多