2017-10-19 8 views
0

J'utilise deeplink dans mon iOS appiOS Swift: Firebase Liens dynamiques: Short URL ne fonctionne pas

customAppScheme: // openID # ID = 12345

Ceci dit pour ouvrir une page d'élément particulier.

Je veux utiliser le même dans le cadre du lien dynamique.

Avec le générateur URL personnalisée

URL longue: https://<myCode>.app.goo.gl/?ibi=com%2Ecompany%2EmyAPP&ius=customAppScheme%3A%2F%2FopenID%23ID%3D12345&isi=1234567890&imv=1%2E0&ifl=https%3A%2F%2Fgoogle%2Ecom&link=https%3A%2F%2Fgoogle%2Ecom

URL absolue: https://<myCode>.app.goo.gl/?ibi=com.company.myAPP&ius=customAppScheme://openID#ID=12345&isi=1234567890&imv=1.0&ifl=https://google.com&link=https://google.com

Short URL: https://<myCode>.app.goo.gl/aHS1Vq5RZYL6kGR02

Lien: https://google.com

build ID: « com. company.monAPP "

customScheme: "customAppScheme: // IDIDID # ID = 12345"

Si j'utilise l'URL long, cela fonctionne correctement. (J'ajoute le lien dans les notes et clique sur le lien.) L'application s'ouvre et va à la page d'item donnée. Mais quand j'utilise l'URL courte, l'application s'ouvre mais après rien d'autre. Il ne va pas à la page d'article.

PFB ma méthode de délégué d'application.

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool { 
    guard let dynamicLinks = DynamicLinks.dynamicLinks() else { 
     return false 
    } 

    let handled = dynamicLinks.handleUniversalLink(userActivity.webpageURL!) { (dynamiclink, error) in 

     if let dynamiclinkURL = userActivity.webpageURL, let urlComponents = URLComponents(url: dynamiclinkURL, resolvingAgainstBaseURL: true) { 

      if let queryItems = urlComponents.queryItems { 

       queryItems.forEach { queryItem in 

        if let value = queryItem.value, queryItem.name == "ius" { 
         handelLink(url: value) 
        } 

       } 

      } 

     } 
    } 


    return handled 
} 

Cette méthode fonctionne parfaitement pour l'URL longue. Mais pour l'URL courte cela ne fonctionne pas. S'il vous plaît laissez-moi savoir si je fais quelque chose de mal et quelque chose a raté.

Merci d'avance.

+0

je suis confronté mêmes problèmes pour DynamicLinks.dynamicLinks lien court(). HandleUniversalLink pas retrun lien ou erreur –

Répondre

1

Veuillez vous assurer que le lien court a les mêmes paramètres que le lien long. Pour comparer les liens, accédez à la page de débogage pour chaque lien. Ajoutez le paramètre d=1 à la fin du lien pour obtenir l'URL de la page de débogage. Pour la page de débogage lien court est https://<myCode>.app.goo.gl/aHS1Vq5RZYL6kGR02?d=1, longtemps lien https://<myCode>.app.goo.gl/?ibi=com%2Ecompany%2EmyAPP&ius=customAppScheme%3A%2F%2FopenID%23ID%3D12345&isi=1234567890&imv=1%2E0&ifl=https%3A%2F%2Fgoogle%2Ecom&link=https%3A%2F%2Fgoogle%2Ecom&d=1

+0

Bonjour Oleksiy, je l'ai déjà fait la même chose et vérifié le lien les URL longues et courtes. Les deux ont les mêmes paramètres – user1696616

+0

Veuillez partager les deux liens (courts et longs). N'hésitez pas à ouvrir le bug de support Firebase pour le partager en privé. –

+0

Je suis confronté aux mêmes problèmes pour le lien court DynamicLinks.dynamicLinks(). HandleUniversalLink pas retrun lien ou erreur –