我注意到,在原生 iPhone Facebook 应用程序中,人们可以直接打开链接,而无需切换到 Safari 或其他浏览器。网页是否可以判断用户是否在该应用程序包装的浏览器中?
最佳答案
我现在明白了。您可以通过获取用户代理字符串来判断哪种浏览器正在访问您的网站。
您可以使用 PHP、Java、Python 等在服务器端获取它,也可以使用 javascript 在客户端获取它。
在 PHP 中,它存储在 $_SERVER['HTTP_USER_AGENT'] 超全局中。该 PHP 将用户代理字符串回显给用户:
echo $_SERVER['HTTP_USER_AGENT'];
在 javascript 中,它位于 navigator.userAgent 变量中。此 JavaScript 向用户显示他的用户代理:
alert(navigator.userAgent);
Facebook 应用程序的用户代理字符串将如下所示:
Mozilla/5.0(iPad;CPU OS 8_3,如 Mac OS X)AppleWebKit/600.1.4(KHTML,如 Gecko)Mobile/12F69 [FBAN/FBIOS;FBAV/28.0.0.10.10;FBBV/8930087;FBDV/iPad4,1;FBMD/iPad;FBSN/iPhone操作系统;FBSV/8.3;FBSS/2; FBCR/;FBID/平板电脑;FBLC/en_US;FBOP/1]
具体来说,FBAN/FBIOS 部分将其标识为 Facebook 应用。
注意:用户代理字符串非常不可靠,因为它很容易伪造。就您的目的而言,这没什么大不了的,但您不应该根据用户代理字符串做出实际的编程决策。
关于javascript - 是否可以判断用户是否正在 Facebook 应用程序内访问我的页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29713070/