[iOS] Firebase Dynamic Linksのshort Dynamic Linkを扱う

本記事では、iOSアプリでFirebase Dynamic Linksのshort Dynamic Linkを扱う実装を紹介します。
2018.07.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは。モバイルアプリサービス部の平屋です。

本記事では、iOSアプリでFirebase Dynamic Linksのshort Dynamic Linkを扱う実装を紹介します。

検証環境

  • macOS High Sierra Version 10.13.5
  • Xcode Version 9.4.1 (9F2000)

DynamicLinkComponentsを作成します。

let deepLinkURL = URL(string: "https://dev.classmethod.jp/?id=0001")!
let components = DynamicLinkComponents(link: deepLinkURL, domain: "dynamiclinkssample.page.link")
let iOSParameters = DynamicLinkIOSParameters(bundleID: Bundle.main.bundleIdentifier!)
iOSParameters.appStoreID = "899247664"
components.iOSParameters = iOSParameters

print("long Dynamic Link:\(components.url!)")

urlプロパティを使用すれば以下のような形式のlong Dynamic Linkを取得できます。

https://dynamiclinkssample.page.link/?link=https%3A%2F%2Fdev%2Eclassmethod%2Ejp%2F%3Fid%3D0001&ibi=com%2Eshingohry%2EFirebaseDynamicLinksSample&isi=899247664

short Dynamic Linkを作成するにはshorten(completion:)を使用します。

components.shorten { shortLink, strings, error in
    print("short Dynamic Link:\(shortLink!)")
}

上記コードを実行すると、以下のようなURLを取得できます。

https://dynamiclinkssample.page.link/xYaLRBAXgEYJkAK39

short Dynamic LinkからディープリンクURLを取得する

DynamicLinksresolveShortLink(_:completion:)を使用してLinkの詳細を取得します。

DynamicLinks.dynamicLinks().resolveShortLink(url!) { url, error in
    print("resolved url:\(url!)")
}

上記コードを実行すると、以下のようなURLを取得できます。deep_link_idパラメータの値がディープリンクURLです。

com.shingohry.firebasedynamiclinkssample://google/link/?utm_campaign=&deep_link_id=https%3A%2F%2Fdev%2Eclassmethod%2Ejp%2F%3Fid%3D0001&utm_medium=dynamic%5Flink&match_type=unique&utm_source=firebase

さいごに

本記事では、iOSアプリでFirebase Dynamic Linksのshort Dynamic Linkを扱う実装を紹介しました。

short Dynamic LinkはREST APIを使用して作成することもできるようです。

これからshort Dynamic Linkをさわってみようとしてる方の参考になれば幸いです!

参考資料