微信扫码登录后如何优雅地关闭弹窗并刷新主窗口?

微信扫码登录后如何优雅地关闭弹窗并刷新主窗口?

如何优雅地关闭微信扫码登录弹窗并刷新主窗口?

问题描述:

我们在运用微信扫码登录时,主窗口会弹出一个用于扫码的小窗口。如何在扫码成功后,关闭小窗口并刷新主窗口来更新会话呢?

解决方案:

不要将扫码成功后跳转的页面直接显示在小窗口中,而是跳转到一个中间页面。在这个中间页面中,通过 window.opener 执行如下逻辑:

  • 使用 window.close() 关闭小窗口。
  • 执行任意需要更新主窗口的逻辑,如刷新页面或更新会话。

具体步骤:

  1. 在扫码登录时,设置一个回调页面,用于处理登录成功的返回。
  2. 在回调页面中,使用 window.opener.location.reload() 刷新主窗口。
  3. 使用 window.opener.window.close() 关闭小窗口。

示例代码:

// 回调页面
function loginCallback() {
  window.opener.location.reload();
  window.opener.Window.close();
}

通过这种方式,可以在扫码成功后关闭小窗口并刷新主窗口,从而更新会话信息。

以上就是微信扫码登录后如何优雅地关闭弹窗并刷新主窗口?的详细内容,更多请关注硕下网其它相关文章!