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

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了使用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也做了类似的事情.

脚本宝典总结

以上是脚本宝典为你收集整理的使用PHP / Javascript检测应用内浏览器(WebView)全部内容,希望文章能够帮你解决使用PHP / Javascript检测应用内浏览器(WebView)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。