2017-03-23 7 views
5

私は、さまざまなアプリの味のために複数の逆拡散スキームを持っています。私はアプリごとに異なるスキームを送信するバックエンドを持っています。それらのすべてが同じデバイスにインストールされている場合、それらのすべてが送信されたデトランスリンクを解析できます。つまり、3つすべてがインストールされ、app2のデープリンクが呼び出されたときです。すべてのアプリはそれをキャッチすることができますが、app2だけがアプリで適切に処理することができ、唯一のアプリしかキャッチできません。私.gradleファイルフレーバーごとのAndroidのデープリンク

productFlavors { 
    app1{ 
     applicationId "com.apps.app1" 
    } 
    app2{ 
     applicationId "com.apps.app2" 
    } 
    app3{ 
     applicationId "com.apps.app3" 
    } 
} 

私は私のマニフェストでディープリンクをキャッチするために使用するインテントフィルタに定義されて

フレーバー。

<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:pathPrefix="/" 
     android:scheme="app1" /> 
    <data 
     android:pathPrefix="/" 
     android:scheme="app2" /> 
    <data 
     android:pathPrefix="/" 
     android:scheme="app3" /> 
</intent-filter> 

ディープリンクを1つのフレーバでキャッチ可能にする方法はありますか?

+3

また、android:scheme = "@ string/scheme" 'の文字列リソースを指定し、各フレーバーでそれを上書きすることもできますし、同様に' $ {scheme} 'のようなマニフェストマージンプレースホルダを使ってgradleで設定できます。 –

答えて

1

各製品のフレーバーに独自のマニフェストファイルを指定する必要があります。別名ディープリンクのURIパターンを指定できます。

詳細についてはConfigure Build VariantsMerge Multiple Manifest Filesを参照してください。また、製品フレーバーのアプリを構築する方法の詳細については、こちらをご覧ください。

関連する問題