使用PHP / Javascript检测应用内浏览器(WebView)
使用PHP / Javascript检测应用内浏览器(WebView)
我开发了一款iOS和Android的应用程序,使用应用内浏览器(Webview)从我的Web服务器访问HTML文件。
我不希望用户在未使用应用程序的情况下能够访问此文件。是否有可能检测用户是使用应用程序还是直接通过智能手机/平板电脑/计算机上的浏览器访问文件?我认为使用PHP的解决方案更好,因为Javascript可能会被关闭。至少Google Analytics可以区分Safari和Safari(应用内)。它应该适用于所有版本的iOS和Android。
感谢您的帮助。
解决方案
经过多次尝试,我终于找到了适合我的解决方案!
iOS:
您可以使用用户代理检测Safari和应用内浏览器之间的区别。可能有一个更好的解决方案,但这个可以工作。
// Safari(应用内) if((strpos($ _SERVER ['HTTP_USER_AGENT'],'Mobile /')!== false)&&(strpos($ _SERVER ['HTTP_USER_AGENT'],'Safari /')== false){ echo 'Safari(应用内)'; }
Android:
应用程序的包名存储在PHP变量 $ _SERVER ['HTTP_X_REQUESTED_WITH']
中。
// Android(应用内) if($ _SERVER ['HTTP_X_REQUESTED_WITH'] ==“com.company.app”){ echo 'Android(应用内)'; }
正如Tim van Elsloo已经指出的,HTTP头可以被伪造,因此这并不是绝对安全的。