通常のインストール済みアプリでは、次の手法を使用できます。 ディープリンク URLから特定のアプリケーションを開くだけでなく、特定のFacebook投稿や地図上の特定の座標などの特定のセクション/機能にリダイレクトすることもできます。
リンクをダウンロードして実行する特定のモジュールを既に指しているため、インスタントアプリでこれを読むことができませんが、上記のモジュールにアクセスするだけでなく、いくつかのパラメーターを渡すこともできますか?
例えば:
これは、マップアプリケーションの表示専用モジュールがダウンロードされるリンクです: "www.myinstantappexample.com/onlyviewmap」
特定の座標セットを指すようにする場合、リンクはどのように構成されますか?次のようになりますか: "www.myinstantappexample.com/onlyviewmap/?x=0.000&y=0.000?
私がグーグルを見つけることができたということから、この側面をカバーしておらず、私は本当にそれを頭で包むことができません。
インスタントアプリ アプリリンクに依存 動作し、アプリリンクはディープリンクの一種です。そのため、インスタントアプリでは引き続きディープリンクが可能であり、実際にはそれらの機能にとって絶対的に重要です。ただし、URIスキームのディープリンク(Androidアプリ)で依然として一般的です)は、notをサポートしています。
通常のアプリとインスタントアプリの違いは、Playストアから完全なパッケージをダウンロードする代わりに、ユーザーがクリックするアプリリンクに応じてデバイスが単一のアクティビティのみを読み込むことです。ユーザーにとってよりシームレスなエクスペリエンスですが、基盤となるテクノロジーは同じように機能します。
ユーザーがhttp://www.myinstantappexample.com/onlyviewmap/?x=0.000&y=0.000
などのアプリリンク対応URLをクリックすると、アプリが開いた後にその文字列全体がアプリ内に返されます。 x
変数とy
変数を自分で解析する必要がありますが、それらは利用可能です。このようなもの:
Uri data = this.getIntent().getData();
if (data != null && data.isHierarchical()) {
String uri = this.getIntent().getDataString();
Log.i("MyApp", "Deep link clicked " + uri);
}
必要なものを見つけるには、uri
値を操作するだけです。
または、リンクを強化するために Branch.io (完全開示:ブランチチームに所属しています)を使用することもできます。 インスタントアプリのフルサポート があり、これにより、はるかに使いやすいデータ形式で作業できます。このようなリンクを作成して、動作のすべての部分を制御できます。
branch.link({
tags: [ 'tag1', 'tag2' ],
channel: 'facebook',
feature: 'dashboard',
stage: 'new user',
data: {
x: '0.000',
y: '0.000',
'$desktop_url': 'http://myappwebsite.com',
'$ios_url': 'http://myappwebsite.com/ios',
'$ipad_url': 'http://myappwebsite.com/ipad',
'$Android_url': 'http://myappwebsite.com/Android',
'$og_app_id': '12345',
'$og_title': 'My App',
'$og_description': 'My app\'s description.',
'$og_image_url': 'http://myappwebsite.com/image.png'
}
}, function(err, link) {
console.log(err, link);
});
代わりにhttp://myappname.app.link/iDdkwZR5hx
のようなURLを取得し、リンクをクリックするとアプリ内で次のようなものが表示されます。
{
tags: [ 'tag1', 'tag2' ],
channel: 'facebook',
feature: 'dashboard',
stage: 'new user',
data: {
x: '0.000',
y: '0.000'
}
}
特定の座標セットを指すようにする場合、リンクはどのように構成されますか?
URLに追加情報を含める方法はユーザー次第です。 URLパラメータを介して、またはパス自体にある可能性があります。例えば。
_https://www.myinstantappexample.com/location/2/user/5
_ _https://www.myinstantappexample.com/onlyviewmap/?x=1.2&y=3.4
_
次に、受信Activity
のURLを解析します。 Uri
クラスには、 getQueryParameter()
や getPathSegments()
これを簡単にします。
たとえば、このURLを解析するには:
_https://www.myinstantappexample.com/onlyviewmap/?x=1.2&y=3.4
_
Activity
で次のようなことを行います。
_Uri uri = getIntent().getData();
String x;
String y;
if (uri != null) {
x = uri.getQueryParameter("x"); // x = "1.2"
y = uri.getQueryParameter("y"); // y = "3.4"
}
if (x != null && y != null) {
// do something interesting with x and y
}
_
そのためには、「ツール」->「アプリリンクアシスタント」の「アプリリンクアシスタント」を使用する必要があります。
次に、リンクを確認し、パスセレクタで、「pathPrefix」オプションが選択されていることを確認します。
次に、アクティビティのOnCreateメソッドの下部(最近編集したリンクに関連する)に次のコードを追加します。
Intent appLinkIntent = getIntent();
String appLinkAction = appLinkIntent.getAction();
Uri appLinkData = appLinkIntent.getData();
// then use appLinkData.getQueryParameter("YourParameter")
「editConfigurations」オプションを使用して、これをテストおよびデバッグし、そのウィンドウを開いて、instantAppモジュール(最近編集したリンクで起動したモジュール)を編集し、URLフィールドに必要なURLパラメーターを追加します。 (その後、そのモジュールを実行します:D)
これが役立つことを願っています。