0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

FDLやカスタムURLスキーム実装時に気をつけたいこと

Posted at

はじめに

今回はAndroidでFDLやカスタムURLスキーム実装をする際に気をつけたいことを紹介していきます

本文

今回、自分が少しハマってしまったのが取得タイミングです
自分は今までonCreateでデータを取得するようにしていましたが、そうするとアプリがバックグラウンドにある時にうまく取得できませんでした。
そこで下記のように実装することでバックグラウンド等関係なく取得することに成功しました。
また、intentを渡すようにしないとonNewIntentでのカスタムURLスキーム取得がうまくいかないので注意が必要です

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        checkLink(intent)
    }

    override fun onNewIntent(intent: Intent?) {
        super.onNewIntent(intent)
        checkLink(intent)
    }

    private fun checkLink(intent: Intent?) {
        Firebase.dynamicLinks
            .getDynamicLink(intent)
            .addOnSuccessListener(this) { pendingDynamicLinkData: PendingDynamicLinkData? ->
                pendingDynamicLinkData?.let {
                    // FDL取得時のコード
                    }
                } ?: kotlin.run {
                    val uri = intent?.data
                    // カスタムURLスキーム取得時のコード
                }
            }
            .addOnFailureListener(this) { e -> Log.w("TAG", "getDynamicLink:onFailure", e) }
    }

最後に

今回は自分が少しハマってしまった部分を紹介していきました
どなたかのお役に立てれば幸いです

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?