2016-05-16 15 views
2

Safari(iOS)またはChrome(Android)でJSコードを実行して、たとえばWhatsAppがデバイスにインストールされていることを検出したいとします。Javascriptの(Android iOS)デバイスに特定のアプリがインストールされているかどうかを検出する方法はありますか?

私はと遊んだ:

How to check if an app is installed from a web-page on an iPhone?

https://github.com/hampusohlsson/browser-deeplink

しかし、問題は、アプリケーションがデバイスにインストールされている場合ということです - ブラウザアプリへの再指示します。私は "検出段階"の後にページにとどまりたい、そうすることが可能ですか?

+0

あなたのアプリリンクをwindow.openで開いて閉じようとすると、アイデアを共有するだけです。このリンクのフローのようなものhttp://stackoverflow.com/questions/13695537/opening-and-closing-a-new-tab-when-downloading しかし、私はこの特別な場合に動作することができますかわからない。 – Pierfrancesco

+0

かんたん回答、いいえ。ブラウザーのアプリ検出に関する普遍的な仕様はありません。 –

答えて

5

研究の数時間後+トップの専門家と相談し、私は、ブラウザの再ダイレクトを持つことなく、特定のアプリがデバイスにインストールされているかどうかを検出するという目標を達成するための正当な方法ありませんという結論に達しましたそれがインストールされている場合、アプリに。

たとえば、iOSでは、ルール違反のためにApp Storeからアプリが削除されました:SysSecInfo。アプリケーションは、例えば実行中のすべてのプロセスのリストを取得することができました。

から:https://www.sektioneins.de/en/blog/16-05-09-system-and-security-info.html

彼らは(周り現在システム上で実行中のプロセスに関する情報 を収集するために使用されるいくつかのAPIを議論https://developer.apple.com/videos/play/wwdc2015/703/「のApp 検出は」この話の間に8時34

で始まるを参照してください。 12:12ビデオの )、それらを修正したと主張しています。しかし、しばしばAppleは が固定していると主張する問題を部分的にしか固定していない。したがって、 悪意のあるアプリケーションが実際にあなたの デバイス上で実行されている他のアプリケーションに関する情報を収集することを悪意のあるアプリケーションから奪ったことはありませんでしたが、とにかく無害なシステム情報ツールに関する の詳細情報へのアクセスのみが削除されました。

システムとセキュリティ情報は、したがって、まだ 実行中のプロセスのリストを表示することができ、 プロセスが持って実行している資格のリストを含む codesigning情報からの情報と、このリストを豊かにします。

関連する問題