【问题标题】:Dynamic link object has no url动态链接对象没有 url
【发布时间】:2020-03-27 18:33:59
【问题描述】:

当我尝试接收链接时,我为我的 firebase 项目创建了 DynamicLink 我得到“这很奇怪。我的动态链接对象没有 url”。

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
        if let incomingURL = userActivity.webpageURL{
                   print("Incoming URL is \(incomingURL)")
                   let linkHandled = DynamicLinks.dynamicLinks().handleUniversalLink(incomingURL)
                   {(dynamicLink, error) in
                       guard error == nil else{
                           print("Found an error! \(error!.localizedDescription)")
                           return
                       }
                       if let dynamicLink = dynamicLink{
                        self.handleIncomingDynamicLink(dynamicLink)
                       }
                   }
                   if linkHandled{
                       return true

                   }
                   else{
                       return false
                   }
               }
               return false
    }


 func handleIncomingDynamicLink(_ dynamicLink: DynamicLink){
        guard let url = dynamicLink.url else{
            print("That's weird. My dynamic link object has no url")
            return
        }
        print("Your incoming link parameter is\(url.absoluteString)")
}

【问题讨论】:

  • 我遇到了类似的问题,我的在调试期间工作,但在我发布版本时为零,您找到解决方案了吗?
  • 同样的问题有没有人找到任何解决方案,拜托。
  • 你找到解决办法了吗?
  • 有人找到解决方案了吗?请在此处更新。
  • @Madhuri Doppalapudi 有什么解决方案吗?

标签: ios swift firebase firebase-dynamic-links


【解决方案1】:

在查看了所有博客并在 firebase 上发布了这个问题后,我没有找到任何解决方案,但我想出了这个具体的解决方案,它肯定会起作用


这里:dynamicLinkURL 是您的主要动态链接,shortHandURL 是与您的动态链接相关联的深层链接 URL。我希望下面的sn-p对你有帮助。


func dynamicLinkhandler(_ dynamicLinkURL: URL, onCompletion: @escaping(_ success: Bool) -> Void) {
    URLSession.shared.dataTask(with: dynamicLinkURL) { (data, response, error) in
        guard error == nil else {
            print("Found Error \(String(describing: error?.localizedDescription)))")
            return
        }
        guard let shortHandURL = response?.url, shortHandURL != dynamicLinkURL else {
            print("Thats Weird, my dynamic link has no URL")
            onCompletion(false)
            return
        }
        onCompletion(true)
    }.resume()
}

【讨论】:

    【解决方案2】:

    仔细检查您在 firebase 控制台中的动态链接向导创建中设置的捆绑 ID,它是您正在运行应用程序的那个。

    我有三个不同的捆绑包 ID(开发、企业、生产),例如,如果链接中设置了生产捆绑包 ID,但应用运行的是开发包 ID,而不是返回一些错误,它返回了一个诚实的dynamicLink 对象,但在 url 中有一个 nil 值。

    【讨论】:

      猜你喜欢
      • 2020-06-29
      • 2022-01-16
      • 1970-01-01
      • 2021-09-02
      • 1970-01-01
      • 2020-03-18
      • 1970-01-01
      • 1970-01-01
      • 2010-09-11
      相关资源
      最近更新 更多