0

我正在使用 starling(3D 图形)在 Flash 中开发 Facebook 应用程序。所以我的 HTML 页面需要在 wmode="direct" 中。

我实现了 Facebook https://developers.facebook.com/blog/post/637/上给出的解决方案

我在回调中添加了一个日志,但该日志从未出现,所有 Facebook 对话框都显示在我的 Flash 应用程序下。所以我不认为回调被调用。

这是我的回调测试代码。我错过了什么吗?谢谢

编辑在我的应用程序中调用后端,然后重定向到前端。我发现当我的背部和正面之间的域不同时,回调不会启动,但是当它是同一个时,它会被调用。有人知道为什么吗?

function test(info)
{
console.debug("teste");
}

function fbInit()
{

  window.fbAsyncInit = function()
  {
    FB.init({
     appId: '${facebook_api_code}',
     status: true,
     cookie: true,
     xfbml: true,
     oauth: true,
    frictionlessRequests: true,
    hideFlashCallback : test
    });

    FB.Canvas.setSize();
    window.isFacebookAPIInitialized = true;

    if ((flashObject = getFlashMovie('${application}')) != undefined && flashObject.handleJavascriptFacebookAPIInitialized != undefined)
  flashObject.handleJavascriptFacebookAPIInitialized();
 };

 // Load the SDK asynchronously
 (function(d, s, id){
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {return;}
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all"+".js";
  fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'facebook-jssdk'));
};
4

1 回答 1

0

我遇到了同样的问题,在我的情况下,FB.init 被调用了两次,一次来自 Javascript,另一次来自 Flash 内部,导致 flashHideCallback 丢失。

于 2014-03-09T09:47:18.733 回答