对于现在的一些客户,我有一个要求在中国隐藏“用 Facebook 登录”功能,Facebook 在中国被屏蔽。我可以想到几种方法来做到这一点:
1) 使用设备语言环境。
- 优点:超级简单!
- 缺点:不准确——中国的某个人可能将他们的设备设置为 en_US,而美国的某个人可能将他们的电话设置为 zh_CN。没有骰子。
2) 使用 GPS 和反向地理编码。
- 优势:您实际上是在衡量此人当前是否在您标记为“受限”的区域内。
- 缺点:需要用户给你位置权限。如果用户拒绝权限,不清楚该怎么做作为后备。有些应用程序不会将 GPS 用于其他任何事情,仅仅为此添加它会是矫枉过正。
3) 对http://facebook.com使用可达性检查。
- 优势:您不仅要检查用户是否在任意位置,还要实际检查 facebook当前是否受限制。如果中国停止屏蔽 Facebook,您的应用会立即开始支持它。
- 缺点:如果您离线,您最终会隐藏登录 UI(这可能不是一个大问题,因为无论您身在何处,Facebook 登录都无法离线工作)。
- 未知数:当您尝试登录 Facebook 时,在中国会发生什么?它会返回 404 吗?重定向到另一个站点?谷歌搜索这个(如上面的链接)只是返回“如何绕过防火墙”而不是“当它被阻止时实际发生的事情”。
那么问题来了:当你试图从中国的防火墙后登录 Facebook 时会发生什么?