如何检测用户何时浏览某个 url?

Posted

技术标签:

【中文标题】如何检测用户何时浏览某个 url?【英文标题】:How can I detect when user browses certain url? 【发布时间】:2010-10-22 14:28:03 【问题描述】:

我正在编写一个应用程序,一旦用户浏览某个 url,它就会变得“有用”。

我想为我的应用程序添加功能,一旦用户浏览此 url,它将自动启动,我正在考虑编写某种看门狗来触发它。

我的问题是,当用户浏览到 url 时,是否有一种通用的方式来获得通知,我希望至少支持 IE 和 FireFox,chrome 和 safari 是不错的。

我阅读了有关 DDE 和 WWW_RegisterURLEcho 的信息,但据我了解,FireFox 不支持它,而且我编写的小示例也不适用于 IE。

提前谢谢你

还有一些问题**

Url Monikers 和异步可插入协议对我有帮助吗?火狐支持吗?

【问题讨论】:

【参考方案1】:

如果您可以控制该网站,您可以让它将 cookie 写入计算机。然后让您的应用程序监控该 cookie。

【讨论】:

没有跨浏览器的方式来监控 cookie。 当然有办法查看多个文件夹。您的应用程序必须设置为监控 IE、FF、Safari、Chrome 等 cookie 文件夹。 谢谢布拉德,但我希望能找到更好的方法。另外,明天我可能想“观看”我无法控制的网站,例如 ebay.com。所以我宁愿找到一种方法,通知我导航到哪个 url 用户。 很多网站使用 cookie,因此您可能不需要“控制”它们以确保留下 cookie。话又说回来,他们总是可以改变他们的政策。如果您想出答案,请告诉我们。【参考方案2】:

您可以通过多种方式在许多不同的层次上实现这一点。

在***别,您可以实现浏览器插件。这一层没有跨浏览器解决方案,可以让您编写一次代码并为每个浏览器工作。在最简单的情况下,Firefox,您可以将其完全实现为 javascript + XUL 插件,并使用内置的 XPCom 接口 (nsIProcess) 来启动您的助手进程。对于 IE,您需要编写处理 DWebBrowserEvents2::BeforeNavigate2 的 COM、C++ 和 win32 BHO。这是最难做的事情。您可以使用 Safari、Chrome 和其他网络浏览器的机制来实现相同的行为,但难度不同。

在下一个级别,您可以实现一个 HTTP 代理,类似于 Fiddler2,它首先通过您的本地代理重定向所有 HTTP 流量。每个浏览器都有不同的代理设置配置方式,但它们基本上都是注册表设置或配置文件。

在最基本的层面上,您可以嗅探所有从机器传出的 IP 流量,类似于 Wireshark 的做法,然后查找对您的 URL 的 http 请求。这可能更难编码,但适用于所有浏览器,而无需进行任何特殊的每个浏览器配置。您可能需要编写驱动程序。我不知道,我从来没有在堆栈中完成过这个级别的工作。

【讨论】:

以上是关于如何检测用户何时浏览某个 url?的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionView:如何检测滚动何时停止

如何检测 amp 页面的 url 何时随 WKWebview 更改

如何检测用户何时离开网站?

如何检测用户何时从 Facebook 删除应用

如何使用 Linux 系统调用检测何时按下某个键

Android webview如何检测何时重新加载