我目前正在开发一个包含 iFrame 的 Facebook 应用程序。iFrame 加载一个 Java 小程序(因此 FBML 页面只是页眉页脚和 FBML 函数的包装器)。
目前的情况是,例如,Java 小程序有一个事件(用户玩完游戏),它在 iFrame 页面上执行了一个 javascript 调用。然后它需要做的是在父窗口 (Facebook.streamPublish()) 中调用一个 javascript,以便用户能够发布他的分数/事件/赢/输任何东西。
FBML 页面上的 iFrame 代码:
<fb:iframe id='appletIframe' frameborder='0' resizable='true' scrolling = 'no' name='appletIframe' src='appletPage.php'></fb:iframe>
每次我尝试与父级通信时,我都会被拒绝访问,因为它是跨域调用。我想知道它是否可以使用 Facebook.connect 或其他一些技术来打电话给父母,或者是否有任何其他方式。如果用户完成游戏,iFrame 调用和 Parent 调用之间应该有一个最小的延迟。
我在 iFrame 中使用小程序的原因是,因为小程序是由 deployJava(Sun 分发的类)部署的,如果我在 facebook FBML 页面上运行它,Javascript 导航器类将被附加(a_navigator)并且它不会运行。
我希望我在描述中足够清楚,有人有任何想法吗?
在此先感谢您的帮助,
迈克尔