Facebook iOS Mobile Web JS SDK错误

Bra*_*don 2 ios facebook-javascript-sdk

我们已经让Facebook在我们的主桌面应用程序上运行而没有任何问题.当我向移动网站添加相同的设置代码时,我收到了来自JavaScript SDK的错误:

Received message of type object from https://s-static.ak.facebook.com, expected a string

然后,我从此处将设置代码更改为完全复制:https://developers.facebook.com/docs/guides/mobile/web/并收到完全相同的消息.

此错误仅在Chrome开发者工具或iOS模拟器中用户代理为iOS或Android时显示.当它从桌面运行时,我们没有看到此错误.

知道这里发生了什么吗?

谢谢 :)

mat*_*wka 5

尽管如此,我相信bokonic的答案忽略了这一点.您收到的消息的直接原因很可能是javascript postMessage方法.它用于将您的网站与由其返回的对象window.openiframe嵌入式网站进行通信.

window.parent.postMessage(message, targetOrigin);
Run Code Online (Sandbox Code Playgroud)

您可能希望查看本文以了解它的工作原理.

根据MDN参考,该postMessage方法的第一个参数可以是任何类型.仍然,在Gecko 6.0之前(Firefox 6.0/Thunderbird 6.0/SeaMonkey 2.3),message参数必须是一个字符串.

我在Chrome 28.0.1500.72(编写此答案时的最新版本)上测试了该方法,它在传递对象时工作正常,但仍然向控制台发出警告消息.我相信facebook会将一些丰富的数据作为字符串传递给他们感到不舒服,因此他们将其作为对象传递,并且根本不关心警告.或者,由于有一个解决方法(例如JSON.stringify),他们有一个他们不知道的错误.