【问题标题】:vb.net awesomium cancel request when url contains specific keyword当url包含特定关键字时vb.net awesomium取消请求
【发布时间】:2014-02-03 07:51:39
【问题描述】:

我使用 awesomium 和 vb.net 作为我的 Web 应用程序的客户端应用程序。当 url 包含特定关键字时,谁能告诉我如何取消请求。例如,如果我的 url 包含视图,那么我需要取消请求并将 pdf 下载到本地计算机并使用客户端 pdf 查看器查看。我已经完成了第二部分,但我不知道如何取消请求。

使用 vb.net 本地 webcontrol 我有导航事件。但它在 awesomium 中与此等价的事件是什么

下面是我使用的代码

Public Class ResourceInterceptor  Implements IResourceInterceptor
Public Function OnFilterNavigation(ByVal request As NavigationRequest) As Boolean Implements IResourceInterceptor.OnFilterNavigation
    If request.Url.ToString.Contains("ViewPdf") Then
        Path = ExtractPath(request.Url.ToString)
        openpdf(Path)
        Return False ' Cancel the request. 
    Else
        System.Diagnostics.Process.Start(request.Url.ToString)
        Return True
    End If
End Function

Public Function OnRequest(ByVal request As ResourceRequest) As ResourceResponse Implements IResourceInterceptor.OnRequest
    Return Nothing
End Function

End Class

谁能说当url包含指定文本时如何取消请求

【问题讨论】:

  • 我犯了一个小错误。要阻止任何传入请求,您必须返回 true 而不是 false。现在它运行良好

标签: vb.net awesomium request-cancelling


【解决方案1】:

实现Awesomium.Core.IResourceInterceptor 接口并使用WebCore.ResourceInterceptor = new ResourceInterceptor(); 将其附加到您的webcore 会话

这是一个简单的 C# ResourceInterceptor。

using System;
using System.IO;
using System.Reflection;
using Awesomium.Core;

namespace MyApp
{
    public class ResourceInterceptor : IResourceInterceptor
    {
        /// <summary>
        ///     Not used.
        /// </summary>
        public virtual ResourceResponse OnRequest(ResourceRequest request)
        {
             return null;
        }

        /// <summary>
        ///     Optionally blocks any web browser requests by returning true when the URL contains "/view/".
        /// </summary>
        public virtual bool OnFilterNavigation(NavigationRequest request)
        {
            return String.Contains(request.Url.AbsolutePath, "/ViewPdf/", StringComparison.InvariantCultureIgnoreCase);
        }
    }
}

【讨论】:

  • 感谢您的时间史蒂夫詹森。
  • @Yuvaraj 如果这解决了您的问题,您能否将我的答案标记为已接受的答案?
  • 史蒂夫詹森,它不适合我。我编辑了我的问题,请告诉我我哪里做错了。
  • 我最初是在测试“/view/”。更新以匹配“/ViewPdf/”。试试这个并在OnFilterNavigation 方法处设置一个断点。这应该在您加载页面时被多次点击,仅对包含“/ViewPdf/”的 URL 返回 true。如果没有,您忘记将其附加到您的会话中WebCore.ResourceInterceptor = new ResourceInterceptor();
  • 史蒂夫感谢您的宝贵时间。它现在正在工作。感谢您的帮助和时间让我走上正确的方向
猜你喜欢
  • 2012-08-06
  • 2019-12-08
  • 1970-01-01
  • 2014-08-02
  • 1970-01-01
  • 1970-01-01
  • 2021-03-21
  • 2011-04-30
  • 2016-12-14
相关资源
最近更新 更多