Dynamic link object has no url

旧时模样 提交于 2020-06-23 04:34:27

问题


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)")
}

回答1:


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()
}



回答2:


Double check that the bundle id you set up in the dynamic link wizard creation within the firebase console it's the one you are running the app into.

I have three different bundle ids (dev, enterprise, production) and, for instance, if a set in the link the production bundle id but the app runs the dev bundle id, instead of returning back some error it returned an honest dynamicLink object but with a nil value in the url.



来源:https://stackoverflow.com/questions/59150908/dynamic-link-object-has-no-url

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!