Как создать ссылку на Dynamic * Dynamic c и получить bit.ly из этой ссылки Dynami c? - PullRequest
0 голосов
/ 16 февраля 2020

Я хотел бы создать динамическую базу Firebase c, но не получить параметр в делегате приложения. как получить?

Я слежу за документами Firebase, но могу получить желаемый результат.

 func createDynamicLinkNew() -> String
    {
        var shortUrl: String = ""
        var components = URLComponents()
        components.scheme = "http"
        components.host = "www.google.com"
        components.path = "/"
        let recipeIDQueryItem = URLQueryItem(name: "strUrl", value: “123”)
        components.queryItems = [recipeIDQueryItem]
        guard let linkParameter = components.url else { return ""}
        print("i am share linkurl\(linkParameter.absoluteString)")
        guard let shareLink = DynamicLinkComponents.init(link: linkParameter, domainURIPrefix: "https://app.test.thinkly.me") else{
            print("Couldn't create FDL componets")
         return ""
        }
        if let myBundleId = Bundle.main.bundleIdentifier{
            shareLink.iOSParameters = DynamicLinkIOSParameters(bundleID: myBundleId)
        }
        shareLink.iOSParameters?.appStoreID = "123467878"
        shareLink.androidParameters = DynamicLinkAndroidParameters(packageName: "com.me.digicita.thinkly.debug")
       guard let longURL = shareLink.url else {
       return ""
       }
       print("The long dynamic link is \(longURL.absoluteString)")
        shareLink.shorten { (url, warnings, error) in
            if let error = error{
                print("Oh no! Got an error \(error)")
                return
            }
            if let warnings = warnings
            {
                for warning in warnings{
                    print("FDL waring : \(warning)")
                }
            }
            guard let url = url else {
                return
            }
            print("i Have a short URL to share ! \(url.absoluteString)")
            shortUrl = url.absoluteString
        }
         return shortUrl
    }

Прикол c приложение (_приложение: UIApplication, продолжить userActivity: NSUserActivity, restoreHandler: @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: dynamicLink)
            }
        }

        if linkHandled{
            return true
        }
        else{
            return false
        }
    }
    return false
}
func handleIncomingDynamicLink(dynamicLink: DynamicLink) {
    guard let url = dynamicLink.url else
    {
        print("That's weired. My Dyanmic link object has no url")
        return
    }
    print("Your incoming link parameter is\(url.absoluteString)")
    guard let components = URLComponents(url: url, resolvingAgainstBaseURL: false), let queryItems = components.queryItems else {
        return
    }
    guard (dynamicLink.matchType == .unique || dynamicLink.matchType == .default) else {
        print("Not a strong enough match type continue")
        return
    }

    if components.path == "/"
    {
        if let recipeIDQueryItem = queryItems.first(where: {$0.name == "strUrl"}){
            guard let recipeId = recipeIDQueryItem.value else {return}
            print("recipt id \(recipeId)")
        }
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...