FDLBuilder 0.2.0

FDLBuilder 0.2.0

sgr-ksmt 维护。



  • Suguru Kishimoto

FDLBuilder

FDL(Firebase Dynamic Links)构建器。

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)
}
  • 相较于使用框架,使用 FDLBuilder 更易于构建 Firebase Dynamic Links。
  • 方法链式

使用方法

基本使用

  • 使用deeplink和域名初始化构建器。
let deeplink = URL(string: "https://example.com/top")!
let builder = FDLBuilder(link: deeplink, domain: "example.page.link")

或者,如果它是有效的url,还可以直接设置url为String。

let builder = FDLBuilder(link: "https://example.com/top", domain: "example.page.link")
  • 设置您需要的参数。
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
    })

参数

方法 参数类 s
iOS(标识符:_:) DynamicLinkIOSParameters
appStore(_:) DynamicLinkItunesConnectAnalyticsParameters
android(包名:_:) DynamicLinkAndroidParameters
socialMetaTag(_:) DynamicLinkSocialMetaTagParameters
navigationInfo(_:) DynamicLinkNavigationInfoParameters
otherPlatform(_:) DynamicLinkOtherPlatformParameters
options(_:) DynamicLinkComponentsOptions
  • 构建链接
// 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)
}

高级

如果您想在构建FDL之前更改deeplink

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

依赖关系

  • Firebase/DynamicLinks (版本5.0.0以上)

安装

CocoaPods

pod 'FDLBuilder'

然后运行 pod install

手工安装

下载所有 *.swift 文件并放置到您的项目中。

通信

  • 如果您发现了一个错误,提交一个问题。
  • 如果您有功能请求,提交一个问题。
  • 如果您想贡献力量,提交一个拉取请求。💪

许可协议

FDLBuilder 采用 MIT 许可证。更多信息请参阅LICENSE文件。