是否可以在一个页面上创建多个 facebook SDK 实例而不会发生冲突?

Is it possible to create multiple facebook SDK instances on a single page without conflict?

我正在开发一个应用程序,该应用程序可以使用需要 facebook 权限的 iFrame 嵌入到其他页面中。问题是我们 运行 在尝试使用 facebook SDK 从 iOS 上的 iFrame 内部登录时遇到了问题(登录 window 从未出现)。我们在放置 iFrame 的父页面上 运行 代码,所以我的问题是,我可以将我们的 SDK 放在父页面上而不与该页面上任何现有的 Facebook SDK 冲突吗?

can I place our SDK on the parent page without conflicting with any existing Facebook SDKs on that page?

不,你不能。 JS SDK只能嵌入和初始化一次

The problem is we're running into issues when trying to use the facebook SDK to login from inside an iFrame on iOS (the login window never appears)

整个JS SDK弹窗登录流程在很多情况下并不是最适合移动端的。

实施手动登录流程可能会更好,https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow

如果您在新 window 中打开它,您必须找到一种方法再次关闭它,并让 iframe 通知已成功登录。 (也许在关闭登录之前postMessage window。)

另一种可能的选择是重定向到顶部 window(而不是打开一个新的 window/popup),然后在登录回第 3 方站点后再次加载您的 iframe . (但并不是所有在他们的页面上使用您的插件的人都会喜欢。)