AndroidAndroid Deep linkingGoogleディープリンキング技術

Androidディープリンキングの技術ガイド:URIスキーム

By 10月 30, 2017 No Comments

これはAndroidでのディープリンキングに関する技術ガイド(4部構成)のパート1です。今後の投稿では、 Chromeインテント、, Androidアプリリンク、Google Play Referrerを取り上げます。

GoogleがOSをポートする責任をデバイス製造業者に強制し、後方互換性を要求したほか、一連のサポート済みデバイスをサポートしたため、開発者がこれまで取り組まなければならなかったプラットフォームの中でも、Androidは最も断片化が進んでいる部類に入ります。これにより、正しいコンテキストで最適なメソッドを使用していることの確認のため、長めのif-else文が生まれる結果となります。

Android devices deep linking

Androidでのディープリンキングも違いはありません。長きにわたって私たちは、ユーザーの状況やコンテキストに応じて採用されなければならない大量の技術要件を目の当たりにしてきました。幸運にも、Branchはそのような実装を結び付け、あらゆる特殊なケースで機能するリンキングプラットフォームを作成しています。もう心配する必要がないよう、Branchのリンクはこの複雑さをラップし、標準化します。私たちはさまざまなツールを無料で提供しているので、最初から再構築しようとするのではなく、私たちのツールをお使いになることを強くお勧めします。

このシリーズでは、私たちが採用しているさまざまなリンキングメカニズムをまとめ、その動作と実装方法について説明します。

start.branch.ioで始めるか、下のボタンを使ってください。

Android URIスキームとインテントフィルター

Android 1.0で、URIスキームによるディープリンキングのメカニズムが作成されました。これによって開発者は、自分アプリがインストールされたら、特定のデバイスのオペレーティングシステムでアプリURI(統一資源識別子)用にそのアプリを登録できるようになります。HTTP、pinterest、fb、myappなど、URIは特殊文字を含まなければどのような文字列でも構いません。登録後、:// を末尾(つまりpinterest://)に加えてこのリンクをクリックすると、Pinterestアプリが開きます。Pinterestアプリがインストールされていない場合は、ページが見つかりませんというエラーが表示されます

Android URIスキームの使用要件

  • アクティビティを登録し、マニフェスト内のインテントフィルタ経由でURIに応答するようにします。
  • アプリを使用のためにインストールする必要があります。アプリがインストールされていない場合はエラーが返されます。

Android URIスキームを設定する方法

URIスキーム用に自分のアプリを設定するのは簡単です。 まず、URIスキームがトリガーされた時に開き、インターネットフィルタを登録したい自分のアプリの内部にアクティビティを取得する必要があります。開きたいアクティビティに対応する自分のマニフェスト内にある<activity />タグに、次のコードを追加します。

ivity />タグに、次のコードを追加します。
your_uri_schemeの部分はお好きなURIスキームに変更できます。一意の文字列を選ぶことが理想的です。他のアプリのURIスキームと重複する場合、リンクをクリックするとユーザーにAndroidチューザーが表示されます。複数のブラウザをインストールされている場合、そのどれもがHTTP URI用に登録されるので、このチューザーがよく表示されます。

Androidアプリでのディープリンクの処理

アプリでディープリンクを処理するには、クリック経由で開いたアクティビティでインテントデータ文字列を取得するだけで結構です。以下に例を示します。

残念ながら、ここからは文字列解析を行い、URIスキームに加えた値を読み取る必要が出てきます。

Android URIスキームの実用的用途

ディープリンキングのURIメソッドは非常に制約が多く、あなたのアプリがインストールされていない場合はエラーメッセージが表示されるので、大幅な変更なしではお勧めできません。URIスキーム自身を効果的に使用するためには、その上にツールをいくつか構築し、アプリがインストールされていない場合など、重度の特殊なケースを処理できるようにする必要があります。

アプリがインストールされていない場合でもクリックするユーザーに高い品質の体験を与えられるよう、ブラウザで実行できるクライアント側のJavascriptにURIスキームをラップする必要があります。自分のサーバーでこのJavascriptをホストし、そのリンクをユーザーに送信しましょう。以下に例を示します。

このコードは、iFrameソースをURIスキームに設定することでアプリを開こうとし、その後アプリの読み込みが失敗したら安全にGoogle Playストアへフォールバックさせます。

結論

Androidのディープリンキングに関する本シリーズの次回の投稿にご期待ください。

Androidは非常に複雑で、特殊なケースが至る所で見られます。あるユーザーから「Android 4.4.4のFacebookではリンクが動作しない」という苦情が来るまでは、万事快調と思えることでしょう。このような悪夢を取り除き、リンクがどこでも動作するよう、Branchのようなツールの使用をお勧めするのはそのためです。

shares