Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dynamic link object has no url

I created the DynamicLink for my firebase project when I am trying to receive the link I am getting "That's weird. My dynamic link object has no 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)")
}
like image 848
Madhuri Doppalapudi Avatar asked Dec 14 '25 04:12

Madhuri Doppalapudi


1 Answers

After checking all the blogs and posted this issue on firebase, I didn't find any solution for this but I came up with this concrete solution and it will work definitely


here: dynamicLinkURL is your main dynamic link and shortHandURL is your deeplink URL which is associated with your dynamic link. I hope the below snippet will help you.


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()
}
like image 177
Purnendu roy Avatar answered Dec 15 '25 17:12

Purnendu roy