Я хотел бы создать динамическую базу 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)")
}
}
}