【发布时间】:2013-04-01 20:11:48
【问题描述】:
我正在构建一个混合 Facebook 应用:桌面用户将被定向到 Page Tab,而移动用户将被定向到 Mobile Web App。
我需要找出一种快速、准确的方法来检测用户的设备并执行适当的重定向——最好不要太复杂。可以吗?
【问题讨论】:
标签: facebook mobile facebook-apps
我正在构建一个混合 Facebook 应用:桌面用户将被定向到 Page Tab,而移动用户将被定向到 Mobile Web App。
我需要找出一种快速、准确的方法来检测用户的设备并执行适当的重定向——最好不要太复杂。可以吗?
【问题讨论】:
标签: facebook mobile facebook-apps
……是的!绝对可以的。
Facebook 自动将尝试访问 Canvas 应用 (apps.facebook.com/your_app) 的移动用户重定向到其等效的移动 Web 应用。
所以,只需设置一个服务器端重定向到apps.facebook.com/your_app,然后设置一个从 Canvas 应用程序到页面选项卡的客户端重定向。
Facebook 会将移动用户重定向到您的移动网络应用;桌面用户将登陆您的 Canvas 应用程序,该应用程序将立即将他们重定向到您的页面选项卡。
在 PHP 中,服务器端重定向如下所示:
<?php
header('Location: http://apps.facebook.com/your_app', TRUE, 302);
exit;
客户端重定向看起来像这样,在 JavaScript 中:
<script type="text/javascript">window.top.location.href = "http://yoururl.com/desktop/";</script>
这是一个可靠的解决方案,比尝试匹配用户代理要好得多。您的用户代理列表可能与 Facebook 的不同;事实上,Facebook 与它执行移动重定向的方式非常不一致。
【讨论】: