我正在构建混合Facebook应用程序:桌面用户将被定向到Page Tab,而移动用户将被定向到Mobile Web App。
我需要找出一种快速,准确的方法来检测用户的设备并执行适当的重定向 - 理想情况是不太复杂。可以吗?
答案 0 :(得分:1)
...是啊!绝对可以做到。
Facebook会自动将尝试访问Canvas App(apps.facebook.com/your_app
)的移动用户重定向到与其等效的Mobile Web App。
因此,只需将服务器端重定向设置为apps.facebook.com/your_app
,并设置从Canvas应用程序到页面选项卡的客户端重定向。
Facebook将移动用户重定向到您的移动网络应用程序;桌面用户将登陆您的Canvas App,它会立即将其重定向到您的Page Tab。
服务器端重定向在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与其执行移动重定向的方式非常不一致。