Facebook iframe的Javascript SDK问题跨域通信 - 安全错误沙盒iframe

时间:2015-10-04 08:11:10

标签: facebook cordova iframe facebook-javascript-sdk intel-xdk

您好我正在开发使用英特尔XDK使用Facebook Javascript SDK的HTML5 + Cordova应用程序。

我开发了index.html并在本地服务器中托管它 喜欢:http://localhost:9090/app/index.html

当我在浏览器(firefox)中测试index.html时(不在Intel XDK模拟器中), 登录,获取用户信息和注销过程正常。

但是当我在英特尔XDK仿真器中测试相同的托管index.html时, 设置webview的位置后

window.location.href='http://localhost:9090/app/index.html

当页面加载时,我在日志中看到有关iframe的安全错误:

  

Uncaught SecurityError:无法设置'domain'属性   '文档':沙盒iframe禁止分配。

来自网址中的javascript,如下所示:

http://static.ak.facebook.com/connect/xd_arbiter/y5GDQHcTQFZ.js?version=41#channel=f1dfa884ce2b6c4&origin=http%3A%2F%2Flocalhost%3A9090

当我检查HTML元素时,javascript就是 来自facebook sdk在div元素(fb-root)中生成的iframe。

另外,当我进行FB登录时(通过点击按钮), 其中一件事可能发生:

  • FB登录页面只显示空白页面
  • 显示FB登录页面,输入用户名和密码,但点击对话框的登录按钮后,页面变为空白页面,(似乎登录对话框没有关闭?)。

这些在控制台中也有错误:

Uncaught SecurityError: Failed to set the 'domain' property on 'Document': Assignment is forbidden for sandboxed iframes.

来自这个javascript:

https://m.facebook.com/v2.4/dialog/oauth?app_id=xxx&client_id=xxx&display=touch&domain=localhost...

我的问题是,facebook Javascript SDK使用iframe来执行其操作, 但为什么在浏览器中操作效果很好, 但是在设备模拟器中执行时 webview说安全性错误?

为什么会这样?

什么是让FB JS SDK在webview中运行的解决方案?

我是否必须配置设备的webview浏览器配置?

还是有其他解决方案吗?

感谢。

0 个答案:

没有答案