我在我的 Facebook Messenger 聊天机器人中使用 webview 进行支付,MessengerExtensions.requestCloseBrowser 应该关闭 webview 窗口并将用户返回到聊天流程 - 但它不起作用。文档说它有效,我试着完全按照他们说的去做;显然我错过了什么。有人看到我在这里遗漏了什么吗?
我在 rails 4.2 应用程序中托管 webview,因此 js 位于单独的文件中。我正在使用 jquery 来处理事件。这是代码:
View 中应该触发操作的按钮(使用 slim):
button type="button"class="chat-button"id="closeButton"完成!
.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。我错过了什么?
最佳答案
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
}
]
}
}
关于javascript - MessengerExtensions.requestCloseBrowser 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42168557/