我开发了一个iOS和
Android应用程序,它使用应用内浏览器(Webview)从我的网络服务器访问一个HTML文件.
原文链接:https://www.f2er.com/php/140112.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头可以被伪造,这并不是绝对安全的.