【问题标题】:FB.ui apprequest not working in page tabFB.ui apprequest 在页面选项卡中不起作用
【发布时间】:2012-06-03 12:04:46
【问题描述】:

我有一个带有邀请按钮的页面标签应用程序(又名 FB.ui -> apprequests),当它从 example.com/pagetab 运行时工作正常(即,它会弹出一个 FB.ui 朋友选择器窗口等)但是当我将我的应用程序的页面选项卡指向那里并从 Facebook 内将其作为 iframe 加载时,没有任何反应。起初我认为是按钮没有链接的问题,因为 jquery 不知道哪个文档已准备好,但我切换到使用 onclick 甚至从 Chrome 控制台输入命令(当然是在 iframe 的范围内)但什么也没发生...这是一个错误还是我错过了什么?

最少的代码:

window.fbAsyncInit = function() {
  FB.init({
    appId      : '123456789', // App ID
    channelUrl : '//fbjscache.php', // Channel File
    status     : true, // check login status
    cookie     : true, // enable cookies to allow the server to access the session
    xfbml      : true  // parse XFBML
  });  };
 (function(d){
   var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
   if (d.getElementById(id)) {return;}
   js = d.createElement('script'); js.id = id; js.async = true;
   js.src = "//connect.facebook.net/en_US/all.js";
   ref.parentNode.insertBefore(js, ref);
}(document));
function sendInvite() {
  console.log("Inviting...");
  FB.ui({method: 'apprequests',
   title: 'Check out this great app!',
   message: 'Join the fun!',
  }, inviteCallback);
}

然后在页面上

<a href="javascript:void(null)" class="invite" onclick="sendInvite()"><div class="facebookButton">Invite</div></a> 

当页面直接加载时,此代码完全符合预期(弹出可爱的朋友选择器对话框),而从 iframe 加载时则不执行任何操作。这是一个错误还是有一些我没有注意到的隐藏设置/JS 怪癖?

【问题讨论】:

    标签: facebook facebook-iframe facebook-javascript-sdk


    【解决方案1】:

    发现一个相关问题后,(Send dialog doesn't work in page tab)我意识到问题是你需要在选项中手动包含参数display : 'popup',所以工作代码需要:

    function sendInvite() {
        FB.ui({method: 'apprequests',
            title: 'Check out this great app!',
            message: 'Join the fun!',
            display: 'popup'
        }, inviteCallback);
    }
    

    这种行为明显违背the docs 所说的应该发生的事情:

    平台对话框均经过构建,可在 Web 和移动 Web 上的各种显示上下文中无缝运行。如果您使用 JS、iOS 或 Android SDK 调用 Dialog,则会根据用户使用的平台和设备自动为您选择显示模式。

    除非对于“页面标签”和“桌面浏览器”的神秘组合,自动选择“不显示,没有警告或错误消息”。

    作为记录,适当的画布应用程序没有此限制。我在一个完整的应用程序中逐行使用相同的代码,一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多