2016-08-17 12 views
2

私は2種類のディープリンクを持っています。アプリケーションがインストールされていれば開くようにしなければならないインストールディープリンクと、アプリケーションがインストールされていない場合にプレイストアを開くことにフォールバックします。 2番目のディープリンク。しかし、それがインストールされている場合、アプリを開くしようとすると、それ以外の場合はフォールバックとしてWebページを開きます。インペントディープリンクは、Referrをパッケージに追加した後、常にプレイストアを開きます

問題は、アプリケーションにリファラーパラメータを追加すると、アプリケーションがインストールされていても、プレイストアを開くことが問題になることです。

ディープリンクをインストールします。

Intent://mypath/?cc=de&tagset=2#Intent;scheme=myscheme;package=com.mypackage&referrer=myreferrer;

オープニングディープリンク:

Intent://mypath/?cc=de&tagset=2#Intent;scheme=myscheme;package=com.mypackage;S.browser_fallback_url=my_fallback_web_url;

答えて

0

Androidはへのアプリのパッケージ名を決定するためにpackage:;の間にあるすべてのものを使用します。起動/インストール。

この例では、パッケージはcom.mypackage&referrer=myreferrerとなり、com.mypackageとは異なります。

代わりにS.referrer=myreferrer;を使用して、アプリで解析することができます。

+0

S.referrerパラメータが存在しないか、あなたはこれを考え出した方法に私を参照してくださいすることができますか?このパラメータを使用しても、ブラウザはS.referrerのデータをプレイストアに渡しません。 これまでのところ、リファラーを渡す唯一の方法は、&referrer = myreferrerをパッケージに追加することです。これは、アプリがインストールされていても、プレイストアアプリケーションを開く動作を引き起こします。 –

+0

Chrome Android Intentで起動したときにプレイストアが参照元を処理するとは思わないあなたは 'mypath /?cc&referrer = myreferrer'の後に置くことができます。 'S.referrer'パラメータは、バンドルパラメータとしてアプリケーションに提供されます。任意の値に 'swhatever'を使用することができます。 –

+0

私はこのアプローチをテストした結果、これは間違っていることがわかります。ブラウザはすべてのパラメータをPlayストアに渡すだけでなく、反対側でもPlayストアはインストール後にパラメータをアプリに渡すだけではありません。 –

0

解決策は、文書化されていない余分なパラメータS.market_referrer=を使用することです。

Source

関連する問題