ios Firebase动态链接处理总是出错

busg9geu  于 2023-02-10  发布在  iOS
关注(0)|答案(1)|浏览(150)

提前感谢您抽出宝贵的时间阅读本文。
我曾尝试通过firebase sdk实现动态链接。
已通过提供的文件,以实现这一点的firebase。
我面临的问题是当我通过使用下面的代码生成的应用程序共享动态链接

guard let link = URL(string: "\(Constant.dynamicLinkBaseUrl)\(urlPathComponent)/\(encShareDetail ?? "")") else { return }
    let dynamicLinksDomainURIPrefix = Constant.DomainURIPrefix
    let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPrefix)
    linkBuilder?.iOSParameters = DynamicLinkIOSParameters(bundleID: Bundle.main.bundleIdentifier ?? Constant.AppBundleID)
    
    linkBuilder?.navigationInfoParameters?.isForcedRedirectEnabled = true
    linkBuilder?.iOSParameters?.fallbackURL = URL(string:Constant.AppStoreFallbackUrl)
    linkBuilder?.androidParameters = DynamicLinkAndroidParameters(packageName: Constant.AndroidPackageName)
    linkBuilder?.androidParameters?.fallbackURL = URL(string: Constant.AndroidFallbackUrl)
    linkBuilder?.shorten() { url, warnings, error in
      print("URL :: \(String(describing: url?.absoluteString))\nWarnings :: \(String(describing: warnings?.debugDescription))\nError :: \(String(describing: error?.localizedDescription))")
      guard let url = url, error == nil else { return }
      print("The short URL is: \(url)")
      tabBarControllerObj?.presentDefaultShare(videoURL: url.absoluteString)
    }

在录音设备中生成的链接,我的应用程序启动,它能够得到生成的动态链接

scene(_ scene: UIScene, continue userActivity: NSUserActivity)

方法,我可以用下面的代码获取链接

guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
          let url = userActivity.webpageURL,
          let host = url.host else {
      return
    }
    print("URL :: \(url.absoluteString)\nHost :: \(host.debugDescription)")

但无法获得我在调用该方法时创建的深层链接

DynamicLinks.dynamicLinks().handleUniversalLink(url)

返回错误**“无法完成操作。动态链接无法解析通用链接URL。"**
没有找到任何与此相关的解决方案,因为相同的动态链接适用于Android应用程序。
请帮助我,因为我坚持了大约4天。

suzh9iv8

suzh9iv81#

我可以通过将我所有的url前缀添加到info.plist来解决这个问题。

<key>FirebaseDynamicLinksCustomDomains</key>
        <array>
          <string>https://<custom domain>/login</string>
          <string>https://<custom domain>/</string>
        </array>

更多详细信息,请访问www.example.comhttps://firebase.google.com/docs/dynamic-links/custom-domains#console

相关问题