FDLBuilder
FDL(Firebase Dynamic Links) builder.
let builder = FDLBuilder(link: "https://example.com/top", domain: "example.page.link")
.iOS(bundleID: "com.example.foo.ios") { params in
params.appStoreID = "123456789"
params.fallbackURL = "https://example.com/lp/ios"
return params
}
.android(packageName: "com.example.foo.android") { params in
params.fallbackURL = "https://example.com/lp/android"
return params
}
.options({ options in
options.pathLength = .unguessable
return options
})
builder.build(.long) { link, _, _ in
print("long link:", link as Any)
}
builder.build(.short) { (link, warnings, error) in
print("short link:", link as Any, warnings as Any, error as Any)
}
- Build Firebase Dynamic Links easily than using the framework as it is.
- Method-chain style
Usage
Basic
- Initialize builder with deeplink and domain.
let deeplink = URL(string: "https://example.com/top")!
let builder = FDLBuilder(link: deeplink, domain: "example.page.link")
or you can also set url as String directly if it's valid url.
let builder = FDLBuilder(link: "https://example.com/top", domain: "example.page.link")
- Set parameters you need.
let builder = FDLBuilder(link: "https://example.com/top", domain: "example.page.link")
.iOS(bundleID: "com.example.foo.ios") { params in
params.appStoreID = "123456789"
params.fallbackURL = "https://example.com/lp/ios"
return params
}
.options({ options in
options.pathLength = .unguessable
return options
})
Parameters
method | parameter class s |
---|---|
iOS(bundleID:_:) |
DynamicLinkIOSParameters |
appStore(_:) |
DynamicLinkItunesConnectAnalyticsParameters |
android(packageName:_:) |
DynamicLinkAndroidParameters |
socialMetaTag(_:) |
DynamicLinkSocialMetaTagParameters |
navigationInfo(_:) |
DynamicLinkNavigationInfoParameters |
otherPlatform(_:) |
DynamicLinkOtherPlatformParameters |
options(_:) |
DynamicLinkComponentsOptions |
- build link
// build long link
let longLink = builder.longLink() // Optional<URL>
print(longLink as Any)
// build short link
builder.build(.short) { url, warnings, error in
print(url as Any)
print(warnings as Any)
print(error as Any)
}
Advanced
If you want to change deeplink before building FDL:
let builder = FDLBuilder(link: "https://example.com/top", domain: "example.page.link")
// set parameters you need
func issueItemLink(itemID: String, completion: @escaping (URL?) -> Void) {
builder
.link("https://example.com/items/\(itemID)")
.build(.short, completion: { url, warnings, error in
print(url as Any)
print(warnings as Any)
print(error as Any)
completion(url)
})
}
Dependencies
- Firebase/DynamicLinks (above v5.0.0)
Installation
CocoaPods
pod 'FDLBuilder'
and run pod install
Manually Install
Download all *.swift
files and put your project.
Communication
- If you found a bug, open an issue.
- If you have a feature request, open an issue.
- If you want to contribute, submit a pull request.
💪
License
FDLBuilder is under MIT license. See the LICENSE file for more info.