Javascript/jquery:如何检测在其他窗口或应用链接中加载的页面?

Posted

技术标签:

【中文标题】Javascript/jquery:如何检测在其他窗口或应用链接中加载的页面?【英文标题】:Javascript/jquery: how to detect page loaded in other window or with applinks? 【发布时间】:2021-12-02 13:38:13 【问题描述】:

我正在我的网页中集成一种新的付款方式。 此方法使用网络重定向将客户发送到付款页面。

使用location.href=.... 命令进行重定向,然后通常会卸载我的网页并将用户发送到支付站点。

当链接以某种方式在其他窗口中打开或客户使用手机浏览时,当链接由应用程序链接处理并打开支付应用程序时,我遇到了一些问题。 客户在第二个窗口或移动应用程序中完成支付,然后他再次关注我的网页,但我的网页仍然是因为它的逻辑,location.href 被抛出。

我知道当用户回来时我必须以某种方式处理自动刷新。 我如何知道 location.href 命令是否已卸载页面,或者它是否只是由应用程序打开而我的页面仍然存在?

【问题讨论】:

【参考方案1】:

通常第 3 方付款重定向发生在新窗口,并通过 window.open 完成

注意事项:用户应允许浏览器中的弹出窗口

它可以更好地控制打开的新 Tab / Iframe 并建立双向通信桥以通过WindowProxy (如closed 或检查referrer)双向获取状态和事件。

或者,您可以连接到 window.onbeforeunload 并设置如下标志

示例:

window.onbeforeunload = function()
  sessionStorage.isUnloaded = 1

并使用window.onload 上的标志来推断您是否离开/关闭/重复会话。

【讨论】:

谢谢解答,好像打开applink应用有点复杂...

以上是关于Javascript/jquery:如何检测在其他窗口或应用链接中加载的页面?的主要内容,如果未能解决你的问题,请参考以下文章

Javascript / jQuery检测输入是不是集中[重复]

通过 Javascript / jQuery 检测 Android 手机

用 js/jquery 检测 Flash 播放器的现代或不推荐的方法?

使用 Javascript 检测触摸屏设备

如何使用 Javascript/jQuery 使用新对象制作其他表单?

使用 javascript/jquery 检测 Asp.Net 表单是不是有效