我正在构建一个混合 Facebook 应用程序:桌面用户将被定向到Page Tab,而移动用户将被定向到Mobile Web App。
我需要找到一种快速、准确的方法来检测用户的设备并执行适当的重定向——最好不要太复杂。可以做到吗?
我正在构建一个混合 Facebook 应用程序:桌面用户将被定向到Page Tab,而移动用户将被定向到Mobile Web App。
我需要找到一种快速、准确的方法来检测用户的设备并执行适当的重定向——最好不要太复杂。可以做到吗?
…是的!绝对可以做到。
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 与它执行移动重定向的方式非常不一致。