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

前端之家收集整理的这篇文章主要介绍了使用PHP / Javascript检测应用内浏览器(WebView)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我开发了一个iOS和 Android应用程序,它使用应用内浏览器(Webview)从我的网络服务器访问一个HTML文件.

我不希望用户无需使用该应用即可访问此文件.是否有可能检测到,如果用户正在使用该应用程序访问该文件,或直接通过此智能手机/平板电脑/计算机上的浏览器?我认为使用PHP解决方案要好得多,因为Javascript可以关闭.至少Google Analytics(分析)可以区分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头可以被伪造,这并不是绝对安全的.

我不确定Android,但是当您使用iOS SDK的UIWebView时,它将作为用户代理(YourApp / 1.0)的一部分发送您的应用程序的名称和版本.

然后,您可以使用PHP来检查您的应用内Webview是否被使用:

if (strpos($_SERVER['HTTP_USER_AGENT'],'YourApp/') !== false)

我认为Android也做了类似的事情.

原文链接:https://www.f2er.com/php/140112.html

猜你在找的PHP相关文章