我们在使用 FB JS SDK、弹出窗口拦截器或 native 应用程序 Web View 时遇到了几个问题。
- FB 应用程序有一个设置,可以将 Facebook 应用程序内的网站作为 WebView 打开。 - 这似乎有一个全面的弹出窗口禁令......所以 FB.Login() 什么都不做。
- iOS 具有阻止所有 POPUP 的默认设置 - Chrome/Android 也有此设置,但不是默认设置。
我很难相信 Facebook 不知道并且有解决方案,因为这似乎是当今最常见的情况。
受影响的行程。
- FB Native 应用程序用户点击指向我们网站的链接。在 FB WebView 中打开 - 无法使用 Facebook 登录。
- Safari 用户打开了 iOS 弹出窗口拦截器 - FB JS SDK 无法正常工作。
- PC/笔记本电脑 Chrome,因为弹出窗口拦截器已打开 - FB 登录将无法使用。
我们可以看到在现代移动环境中实现这项工作的唯一方法是实现完整的 Oauth 重定向流程。
现在对于所有移动或响应式网站来说,这无疑是正确的 - 您的任何用户都可以通过本地应用程序 Facebook、Twitter、Gmail、Slack、LinkedIn 或任何其他应用程序查看您的网站。
最佳答案
使用 FB 高级部分中指定的重定向流。
https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow
这是在当今的移动环境中可靠地登录或设置 FB 和 Twitter 权限的唯一方法,本地应用程序中有无数的“ WebView ”来显示网页和网站。
关于javascript - 登录弹出窗口在 Facebook 应用程序中不起作用,如果存在弹出窗口阻止程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38208842/