ブラウザからAndroidアプリを開く方法

11月 29, 2021
admin

インストールされているアプリをブラウザから開くことは、しばしば「ディープリンク」と呼ばれますが、このガイドで、Androidアプリにディープリンクする方法を自分で学ぶことができます。 このガイドでは、他のアプリ内のリンクをクリックするのではなく、Web サイト ページからアプリを開く方法にのみ焦点を当てます。 Android を完全にカバーするために必要なさまざまなディープリンク規格の詳細については、Android ディープリンクシリーズを参照してください。 これは、Google がデバイス メーカーに OS の移植を義務づけたため、後方互換性と多数のデバイスのサポートが必要になったためです。 このようなエコシステムでは、我々アプリ開発者は、その破片を拾い集めることになります。 Android でのディープ リンクも残念ながら同じです。長年にわたり、ユーザーの状況や文脈に応じて使用しなければならない、多数の技術的要件を目にしてきました。 Branchのリンクは、ここからサインアップして無料で試すことができます。 私たちはすべて無料で提供しているので、ゼロから再構築するのではなく、私たちのツールを使用することを強くお勧めします。

Overview of Changes

あなたの Android アプリを正常に開くために変更が必要な場所は 2 つあります。

App に URI スキームのサポートを追加

URI スキームは、http、pinterest、fb または myapp など、特殊文字を含まない任意の文字列になります。 一度登録すると、最後に://を付けて(例:pinterest://)このリンクをクリックすると、Pinterestのアプリが開きます。 Pinterest アプリがインストールされていない場合は、「Page Not Found」エラーが表示されます。

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

<intent-filter><data android:scheme="your_uri_scheme" /><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /></intent-filter>

your_uri_scheme を希望する URI スキームに変更することができます。 理想的には、これは一意であるべきです。 他のアプリのURIスキームと重なると、ユーザーがリンクをクリックしたときにAndroid選択ツールが表示されます。 複数のブラウザをインストールしている場合、すべてのブラウザが http URI に登録されるため、このようなことがよくあります。

次に、アプリが URI スキームから開かれたことを確認したいと思います。 アプリのディープリンクを処理するには、クリックによって開かれたActivityのインテント・データ文字列を取得すればよいのです。 以下はその例です。

Uri data = this.getIntent().getData();if (data != null && data.isHierarchical()) {String uri = this.getIntent().getDataString();Log.i("MyApp", "Deep link clicked " + uri);}

ここから、ユースケースと実装に非常に固有の URI スキームに追加された値を読み取るために、文字列解析を行う必要があります。

Adding Javascript to Your Website to Open Your App

さて、Android アプリが URI スキームをきっかけに開始される準備ができたら、次のパートは簡単です。 アプリを開くための自動トリガーとなる Javascript を Web サイトに追加する必要があるだけです。 以下の関数 triggerAppOpen は、your_uri_scheme を上記のマニフェストに追加したものに置き換えると、アプリの URI スキームを開こうとします。

var fallbackToStore = function() { window.location.replace('market://details?id=com.myapp.package');};var openApp = function() { window.location.replace('your_uri_scheme://');};var triggerAppOpen = function() { openApp(); setTimeout(fallbackToStore, 250);};

ページ ロード時に実行したい場合は、triggerAppOpen を window.onload にコールするか、サイトのどこかでリンクをクリックしたときに実行されます。 どちらかが動作し、意図した結果を得ることができます。

Android は信じられないほど複雑で、いたるところにエッジケースがあります。 Android 4.4.4 を実行中に Facebook でリンクが機能しないと訴えるユーザーが現れるまでは、すべてがうまくいっていると思うでしょう。 このような悪夢を回避し、リンクがどこでも機能することを保証するために、Branchのようなツールを使用する必要があります。 もっと知りたい方は、Branch のデモをリクエストしてください。

Branch は、クロスプラットフォームのリンクおよびアトリビューション プラットフォームを提供し、デバイスやチャネル間でユーザー体験と測定を統一するソリューションを提供します。 Branchは、世界中の30億人以上の月間ユーザーにモバイルリンクとクロスプラットフォーム測定を提供し、2014年以来、Adobe、BuzzFeed、Yelpなど、75,000以上のアプリケーションに採用されています。 Branchの詳細については、今すぐ営業担当までお問い合わせください

コメントを残す

メールアドレスが公開されることはありません。