アプリ内ブラウザー (Webview) を使用して Web サーバーから HTML ファイルにアクセスする iOS および Android 用のアプリを開発しました。
ユーザーがアプリを使用せずにこのファイルにアクセスできるようにしたくありません。ユーザーがアプリを使用してファイルにアクセスしているか、このスマートフォン/タブレット/コンピューターのブラウザーを介して直接アクセスしているかを検出する可能性はありますか? Javascript をオフにできるので、PHP を使用したソリューションの方がはるかに優れていると思います。少なくとも、Google アナリティクスは Safari と Safari (アプリ内) を区別できます。iOS と Android のすべてのバージョンで動作するはずです。
ご協力いただきありがとうございます。
解決
何度も試みた後、私はついに私にとって有効な解決策を見つけました!
iOS: ユーザー エージェントを使用して、Safari とアプリ内ブラウザーの違いを検出できます。おそらくもっと良い解決策がありますが、うまくいきます。
// Safari (in-app)
if ((strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile/') !== false) && (strpos($_SERVER['HTTP_USER_AGENT'], 'Safari/') == false) {
echo 'Safari (in-app)';
}
Android:
アプリのパッケージ名は PHP 変数に格納されます$_SERVER['HTTP_X_REQUESTED_WITH']
。
// Android (in-app)
if($_SERVER['HTTP_X_REQUESTED_WITH'] == "com.company.app") {
echo 'Android (in-app)';
}
Tim van Elsloo が既に述べたように、HTTP ヘッダーは偽造される可能性があり、これは絶対に安全ではありません。