Androidメモ AndroidでDeepLink? URLスキーム? ブラウザから値をつけてアプリを起動する!

好評?かどうかはわかりませんが。。

Androidの開発メモも書いていきたいと思います!

第一弾は

ブラウザからアプリを起動したいときに使う

URLスキームです!

これに関してはURL SchemeとかDeepLinkとか

なんか色々あってわけわからないのですが、

一応ここではURLスキームとしておきます。

本当にここは仕様があまり定まっていなくて、

この情報を調べるのにもだいぶ苦労しました。。

この記事が検索に上位表示されて、

私みたいにさまよう人が減ることを祈ってます!w

さて、早速ですが

ブラウザ等で

intent://link_app/?id=332

みたいなのを見たことがあるかと思います。

一番メジャーなのは

market://details?id=xxx.xxx.xxx

ってやつですね!

Google Play Storeを開くためのものです。

こういう特殊な文字列をURLとしてブラウザで開くと

対象のアプリを起動することが出来ます。

そこは大体載っているのですが

このid=xxx

こいつをアプリに渡してやる方法が簡潔に説明されてるところがなかなかありませんでした。

ここが知りたいのに。。

というわけでさくっと実装例を書いちゃいます。

まずはURLスキームを受け取るためにManifestに手を加えます。

呼び出したいアクティビティに

こんな感じに加えましょう。

これを先ほどの独自URLで考えると

test://app?id=xxx.xxx.xxx

こうなります!

これだけでこの独自URLにアクセスすれば指定のActivityが起動するはずです。

続いてid=の部分を取得する方法ですが

通常のIntentと同じようにgetIntent()してさらにDataを取得します。

そしたらあとは欲しいパラメータのIDをuri.getQueryParameterすればOK!

test://app?user=abc

とかだったら

これでuserの値が取得できます!

後はそれを適当に処理すればOKですね!

Top