使用PHP / Javascript检测应用内浏览器(WebView)

7 浏览
0 Comments

使用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头可以被伪造,因此这并不是绝对安全的。

0