Mobile Facebook messenger检测关闭webview(移动)

Mobile Facebook messenger检测关闭webview(移动),mobile,webview,facebook-messenger,facebook-messenger-bot,Mobile,Webview,Facebook Messenger,Facebook Messenger Bot,我有一个messenger机器人,为用户提供网页链接。是否有方法检测用户何时关闭webview并因此返回到bot对话 这个问题只适用于手机上的Messenger应用程序,桌面也可以 window.onbeforeunload不受支持,window.pagehide仅在重新加载时有效,但在关闭webview和窗口时无效。unload非常简单,我们需要使用Facebook的messenger扩展SDK,去年我实现了这一点。你可以在这里找到相关代码 我们需要使用window.extasyninit来

我有一个messenger机器人,为用户提供网页链接。是否有方法检测用户何时关闭webview并因此返回到bot对话

这个问题只适用于手机上的Messenger应用程序,桌面也可以


window.onbeforeunload
不受支持,
window.pagehide
仅在重新加载时有效,但在关闭webview和
窗口时无效。unload

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

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

如果需要,使用此
Messenger Extensions.getUserID
获取用户id

提及


注意:上面的示例是在Node.js上完成的。

您可以尝试使用这个

MessengerExtensions.requestCloseBrowser(function success() {
  // webview closed
}, function error(err) {
  // an error occurred
});
这和你要找的不一样。但是,如果您也在实现webview网站,那么您可以通过这种方式驱动用户


更多信息:

这实际上取决于您希望在流程中实现什么

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

然后,close按钮触发Messenger扩展SDK的requestCloseBrowser功能,save/confirm按钮处理实际的save/confirm/process操作


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

您是否使用Messenger Extensions JS SDK来关闭webview?@SLee yes,但是在文档中没有找到任何有助于你解决问题的东西吗?@Marco Dufal没有,问题仍然存在open@MohamedELAYADI很遗憾,你没有更新。我还没有找到办法(过了一段时间我就放弃了)。至于桌面,一年前它的表现有所不同,这不是问题。现在有了他们的iframe,我不确定这将如何工作。这不是问题的答案。您正在强制关闭webview,但我想检测用户自己关闭webview时的情况。确实,这里的官方文档中也有描述:@Elwhis