我有一个messenger bot,为用户提供指向网页的链接。有没有办法检测用户何时关闭webview并因此返回到bot对话?
这个问题仅适用于手机上的Messenger应用程序,桌面很好。
window.onbeforeunload
不受支持,window.pagehide
仅适用于重新加载,但不适用于关闭网页视图以及window.unload
。
答案 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非常简单,去年我实现了这一点。你可以在这里找到相关的代码,
我们需要使用window.extAsyncInit
来检测事件,然后我们可以将信息传递给服务器。
如果需要,请使用此MessengerExtensions.getUserID
获取用户ID。
参考https://github.com/vickymicky/botkit-messenger-express-demo/blob/master/views/webview.ejs
注意:以上示例在Node.js上完成。