MessengerExtensions.requestCloseBrowser似乎不起作用

时间:2017-02-10 20:57:25

标签: javascript ruby-on-rails facebook webview

我在Facebook Messenger聊天机器人中使用webview进行付款,而MessengerExtensions.requestCloseBrowser应关闭webview窗口并将用户返回聊天流程 - 但它不起作用。文档说它有效,我试图完全按照他们的说法去做;显然我错过了一些东西。有谁看到我在这里失踪的东西?

我在rails 4.2 app中托管webview,因此js位于一个单独的文件中。我使用jquery来处理事件。这是代码:

视图中应该触发操作的按钮(使用slim): button type="button" class="chat-button" id="closeButton" Done!

.js文件:

$(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.com/en_US/messenger.Extensions.js";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'Messenger'));

$(function() {
  $("#closeButton").click(function() {
    alert("hit me");
    MessengerExtensions.requestCloseBrowser(
      function success() {},
      function error(err) {
        alert(err)
      }
    );
    return false;
  });
});

window.extAsyncInit = function() {
    alert("js sdk finished loading");
};

请注意,两个警报都会触发,一个是加载sdk时,一个是单击按钮时触发的。但是webview并没有像宣传的那样关闭。顺便说一句 - 返回的错误是2071010.我错过了什么?

2 个答案:

答案 0 :(得分:2)

messenger_extensions 需要设置为true。

"attachment": {
    "type": "template",
    "payload": {
        "template_type": "button",
        "text": "Check this out!",
        "buttons": [
            {
                "type": "web_url",
                "url": "https://yourpage.com",
                "title": "Some Title",
                "webview_height_ratio": "compact",
                "messenger_extensions": true
            }
        ]
    }
}

答案 1 :(得分:0)

我向Facebook提出了一个问题,他们刚刚解决了另一个解决这个问题的问题。 IOS上的Messenger新版本和我的代码突然像宣传的那样工作。感谢您的所有兴趣。