javascript - 是否可以判断用户是否正在 Facebook 应用程序内访问我的页面?

标签 javascript facebook

我注意到,在原生 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/

相关文章:

javascript - 没有在单选按钮上进行默认检查

ios - 当我按下登录 Facebook 按钮时,我的应用程序总是要求我打开 TuneIn Radio?

javascript - 如何在网站的 parse.com 后端使用 facebook 登录?

javascript - 我如何在 JavaScript 中反转 JSON?

javascript - 如何自动注入(inject)状态参数

javascript - 替换 <svg> 中的 <use> 元素的属性后单击事件停止工作 (Win7/IE11)

javascript - 为什么我的简单 JavaScript 数字和删除检查器不起作用?

ruby-on-rails - Rails omniauth-facebook 未定义方法 `path' 为 "https://graph.facebook.com":String

facebook - 从 Facebook 获取访问 token PHP SDK 无法正常工作

php - 将图片上传到页面相册可以,但将图片发布到墙上不行