4

リファラーの概念は初めてです。

私はコードを書きました。その意図は、インストール後にGoogleプレイストアがリファラーデータをブロードキャストとしてアプリに送信し、それに応じてキャッチして処理することです。問題は、Google にファイアバックを要求しているデータが、Google が実際に送信してきたものと異なることです。

次のコードを使用してリンクを作成します。

final String url = "intent://details?id=com.myapp&url="a dummy url"&referrer="+referrer+"#Intent;scheme=market;action=android.intent.action.VIEW;package=com.myapp;S.referrer="+referrer+";end";

ここで referrer = < 正しくbase64エンコードされた文字列 >

注:
最初のダミー URL は役に立ちません。私の興味は、Google にフォールバックしてアプリをインストールすることです。ここでの前提は、アプリがデバイスにインストールされていないため、これでうまくいくはずです。フォールバックは正しく行われ、アプリをインストールした場所から Google PlayStore にリダイレクトされ、リファラー データがアプリにブロードキャストされます。リファラー データをキャッチし、本番ビルドでトーストに表示します。

トースト データで期待される内容: <base64送信したエンコード済み >
表示される内容: "com.android.chrome"

なぜこうなった?

4

1 に答える 1

1

あまりにも多くの時間を費やした後。何が起こっているのかを理解することができました。指定されたリファラーがない場合、chrome は値が「com.android.chrome」である独自のリファラーをアタッチします。リファラーをアタッチする方法が間違っていたため、chrome のデフォルトのリファラーが選択されました。訂正は最後の部分にあります

これを変える

...;package=com.myapp;S.referrer="+referrer+";end";

...;package=com.myapp&referrer="+referrer+";end";

これが他の人に役立つことを願っています。私の一日はこれに費やされました。

于 2016-09-28T17:32:05.733 に答える