WebView 不会在 YouTube 中触发导航事件

WebView doesn't fire Navigation events in YouTube

本文关键字:导航 事件 YouTube WebView      更新时间:2023-09-26

我有一个应用程序,我非常依赖来自WebView的导航事件(例如DOMContentLoaded或NavigationDone)。问题是,YouTube(以及,我想,还有其他一些网站)不会触发这些事件,当你从一个视频转到另一个视频时。我不是网络专家,但我认为这是因为YouTube在框架内进行所有导航。事实上,FrameNavigationComplete确实适用于YouTube视频导航。

通常我不太关心帧事件,因为那里有很多无用的东西。但是现在,我想,我必须以某种方式确定我需要侦听帧而不是 WebView 本身。否则,我无法确定当前页面的 URL 是否已更改,并且由于某种原因,与 WebView 的 Source 属性的双向绑定不起作用。

顺便说一句,由于同样的原因,JavaScript浏览器Microsoft遭受了同样的问题。

有什么好方法可以区分这两种情况吗?我可以运行的任何 javascript 都会告诉我网站是否在框架或其他技术内完成所有工作?

我最终检查了每个帧导航事件中的 WebView.Source 属性,并将其与当前 URL 进行比较,假设如果它们不同,则导航已发生。

我想通过双向绑定到 WebView.Source 会更容易一些,但对我来说并非如此。