인앱 브라우저 (Webview)를 사용하여 웹 서버에서 HTML 파일에 액세스하는 iOS 및 Android 용 앱을 개발했습니다.PHP/Javascript로 인앱 브라우저 (WebView) 감지
사용자가 앱을 사용하지 않고이 파일에 액세스하는 것을 원치 않습니다. 사용자가 앱으로 파일에 액세스 중이거나이 스마트 폰/태블릿/컴퓨터의 브라우저를 통해 직접 파일에 액세스하는 경우이를 감지 할 수 있습니까? 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)';
}
안드로이드 : 응용 프로그램에서 패키지 이름은 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 헤더가 위조 될 수 있으며 이는 절대적으로 안전하지는 않습니다.
다른 브라우저에서 페이지를 열면 iOs 솔루션이 실패합니다. 약간의 시험 후에, 나는 그것을 조금 세련시켰다. 여기를 확인하십시오 : http : // stackoverflow.co.kr/questions/2738766/iphone-webapps-is-a-way-to-detect-how-it-was-loaded-home-screen-vs-safar/20757993 # 20757993 –