はい、モバイル ブラウザ (それ自体) は、アプリケーションのインストール状態を Web に伝えることができません。それでも、どうしてもこの動作を実装したい場合は、"WILD" ソリューションを用意しています。
このソリューションは、クライアント側 (Android デバイス) / サーバー側 (Web) の 2 つの部分に分かれています。
クライアント側 (Android デバイス上):
BroadcastReciever
アプリケーションでは、ネットワーク状態の変化を継続的にリッスンするを実装する必要があります。利用可能な新しいネットワーク接続のブロードキャストが受信されるたびに (たとえば、ユーザーがモバイル データをオンにしたとき)、アプリは取得した IP アドレスを読み取り、それを Web サーバーに通信する必要があります ( を使用HttpURLConnection
)。
IP アドレスを通信すると、この IP アドレスから Web サイトを閲覧しているデバイスにアプリケーションがインストールされていることが Web サーバーに通知されます。
サーバー側 (Web サーバー上):
Web サーバーは、アプリケーションがインストールされているすべてのデバイスから報告されたすべての IP アドレスを追跡します (データベースのコース外)。冗長なエントリを避けるために、受信した各 IP アドレス レコードの有効期限/検証時間を決定できます。
サーバーが Web リクエストを受信すると、リクエストしているクライアントの IP と、そのデータベースに保存されているすべての IP を照合します。一致する IP が見つかった場合は、アプリケーションが既にインストールされているデバイスから Web 要求が送信されたことを意味します。それ以外の場合は、ユーザーをアプリの Play ストア リンクに誘導できます。
提案されたソリューションの制限:このソリューションは、ユーザーがモバイル データ (2g / 3g / など) を使用してインターネットに接続している場合にのみ、100% の精度で機能します。モバイル データを使用して以来、サービス プロバイダーによってデバイスに一意の IP アドレスが毎回発行されます。
これは、Wi-Fi 接続では完全には機能しません。Wi-Fi を使用してブラウジングしている間、同じ Wi-Fi スポットに接続されているすべてのデバイスに同じ IP アドレスが割り当てられます。そのため、2 台の携帯電話が同じ Wi-Fi スポットからインターネットを使用している状況があり、そのうちの 1 台の電話にはアプリケーションがインストールされていて、もう 1 台の電話にはインストールされていません。これにより、サーバーが混乱します。
** この解決策はあまりお勧めできませんが、他の解決策が見つからない場合は、マイナーな修正を加えて使用できます ;)