3
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 5 years have passed since last update.

[Android]FDL実装でintent-filterに入るのはDeep Link方だった。

Posted at

FDL(Firebase Dynamic Links)実装依頼が来た

なぁにFDLって。ふむふむ…リンクを踏んだらアプリのリンク先のコンテンツに直接移動させるし、デスクトップではウェブサイト上の同じコンテンツに移動させてくれると…そしてアプリがインストールされていない場合、ストア側に自動的に飛ばしてくれる。

めっちゃええやん!

実装してみたが…

じゃさっそく実装してみようか!
Firebase用のアカウント作って、プロジェクトを作って、アプリを登録して、コンソールでFDLを作ってみよう。

Dynamic Linkは dynamichoge.page.link として…
Deep Linkは hogehoge.com/top としよう。(https://とwwwは省略)

次はAndroidでIntent-filter設定が必要だな。
って、どう書けばいいのか…ぐぐってみようか。おっと出た。

AndroidManifest.xml
<intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data
        android:host="dynamichoge.page.link"
        android:scheme="https"/>
</intent-filter>

これでオッケーと。
で受信するActivityでリスナー付けて終了だ。

よおし、テストしてみるぞ
リンクを踏むとブラウザで開くか、アプリで開くか選択が出るな。
で、アプリを方を開くと?よし起動と画面遷移成功
ブラウザを開いたら…うん?ぐるぐるが出た後、アプリが起動して画面遷移したぞ?
うん…次はQRコードを試してみよう。あれ、起動はするけど画面遷移しないぞ?
どういうこった…

Documentをちゃんと読もう

話はここまで。で、何が問題だったのかを先に言うとタイトル通り、intent-filterの宣言を間違ったのです。
先にFDLの動きをざっくり書くと

FDLを踏む -> ブラウザがこれをFDLと認識し、Firebaseに投げる -> FirebaseはFDLに設定していたディープリンクにリダイレクトさせる -> アプリをインストールするなり、起動するなりする。

そして公式のDocumentの一部を見てみましょう。

スクリーンショット 2019-03-29 17.28.55.png

そうです。上記のコードはリダイレクトURL(ディープリンク)のhogehoge.com/topではなく、ダイナミックリンクであるdynamichoge.page.linkをintent-filterに入れたのです。なんてこった。
正しく書くとこうなります。

AndroidManifest.xml
<intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data
        android:host="hogehoge.com"
        android:pathPrefix="/top"
        android:scheme="https"/>
</intent-filter>

公式Documentをまともに読まなかったのを反省します…

3
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
3
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?