您好我正在开发使用英特尔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登录时(通过点击按钮), 其中一件事可能发生:
这些在控制台中也有错误:
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浏览器配置?
还是有其他解决方案吗?
感谢。