UWP WebView 广告拦截器

UWP WebView AdBlocker

我正在制作 UWP 应用程序,我使用 WebView 来显示网页内容。内容不是我的,所以我想屏蔽烦人的视频广告。我正在使用下面的函数来放置隐藏横幅的 css 。 如何处理这个任务?我是否应该过滤每个 HTTP 请求,如果它满足某些正则表达式以停止请求?或者我应该阻止执行广告的外部 javascripts 吗? Android WebView 有关于此的主题,但我无法使其在 UWP 上运行。

private async void InvokeScript()
{
    string functionString = "let link = document.createElement('link'); link.rel = 
    'stylesheet'; link.type = 'text/css'; link.href = 'ms-appx-web:///MyCss.css'; 

    document.getElementsByTagName('head')[0].appendChild(link);";

    await webView.InvokeScriptAsync("eval", new string[] { functionString 
    });
}

不同网站的广告可能会有所不同,没有通用的场景可以去除所有的广告。

去除网站广告需要获取网站内容,找到广告代码,然后注入js代码隐藏广告。

我从 Microsoft 论坛中找到了一个很好的解决方案。 对于 UWP WebView FrameNavigationStarting 完成工作!

webView.FrameNavigationStarting += webView_FrameNavigationStarting;

private void webView_FrameNavigationStarting(object sender, WebViewNavigationStartingEventArgs args)
{
    // Cancel navigation if URL is not allowed. (Implemetation of IsAllowedUri not shown.)
    if (!IsAllowedUri(args.Uri))
        args.Cancel = true;
}