Facebook Messenger发现关闭webview(移动)

时间:2017-03-09 10:01:11

标签: mobile webview facebook-messenger facebook-messenger-bot

我有一个messenger bot,为用户提供指向网页的链接。有没有办法检测用户何时关闭webview并因此返回到bot对话?

这个问题仅适用于手机上的Messenger应用程序,桌面很好。

window.onbeforeunload不受支持,window.pagehide仅适用于重新加载,但不适用于关闭网页视图以及window.unload

3 个答案:

答案 0 :(得分:0)

您可以尝试使用它。

MessengerExtensions.requestCloseBrowser(function success() {
  // webview closed
}, function error(err) {
  // an error occurred
});

与您要查找的内容不同。但是,如果您还实施Webview网站,则可以通过这种方式吸引用户。

有关更多信息:Messenger Extension Webview

答案 1 :(得分:0)

这实际上取决于您要在流程中实现的目标。

如果用户使用close-x(右上方)关闭Web视图,则应将其视为常规关闭事件,并且根本不处理任何事情。相反,您应该在Web视图中使用专用的保存/确认和/或关闭按钮。

然后,关闭按钮将触发Messenger Extension SDK的requestCloseBrowser函数,而保存/确认按钮将处理实际的保存/确认/处理操作。

如果您确实需要使用右上角的close-x检测到关闭Web视图的用户,则只能通过长轮询(从Web视图轮询用户会话)来实现。

答案 2 :(得分:-2)

我们需要使用Facebook的Messenger扩展SDK非常简单,去年我实现了这一点。你可以在这里找到相关的代码,

https://github.com/vickymicky/botkit-messenger-express-demo/commit/4aa91d12167daa322bdaddb158289b74ee9610c7

我们需要使用window.extAsyncInit来检测事件,然后我们可以将信息传递给服务器。

如果需要,请使用此MessengerExtensions.getUserID获取用户ID。

参考https://github.com/vickymicky/botkit-messenger-express-demo/blob/master/views/webview.ejs

注意:以上示例在Node.js上完成。