2014-09-26 55 views
0

我想使用多個視圖Awesomium使用,但它有ResourceInterceptor在WebCore的普遍使用,我不能指定ResourceInerceptor分開, 如何才達到Awesomium IWebview ResourceInterceptor C#

List<myBrowser> browsers = new List<myBrowser>(); 
     WebCore.Started += (se, ea) => { 
     WebCore.ResourceInterceptor = new myResourceInterceptor(); 
     }; 
     for (int i = 0; i < 5; i++) 
     { 
     WebSession session = WebCore.CreateWebSession(folder + "\\b" + i,new WebPreferences()); 
     WebView view = WebCore.CreateWebView(1024, 768, session, WebViewType.Window); 
     myBrowser b = new myBrowser(folder + "\\b" + i,ref view); 
     b.view.Source = "www.google.com".ToUri(); 
     } 




    public class myBrowser 
    { 
     .. . 
    public myBrowser(string data,ref WebView view) 
     { 
      this.dataFolder = data; 
      this.view = view; 
      view.LoadingFrameComplete += view_LoadingFrameComplete;    
     } 
    } 

    // I can get unique WebViewId (request.ViewId) how to route this event to correct "myBrowser" 
    public class myResourceInterceptor: IResourceInterceptor 
    { 
     public ResourceResponse OnRequest(ResourceRequest request) 
     { 
     Console.Write("Request"+request.ViewId); 
     } 
    } 

我可以得到獨特WebViewId(request.ViewId )in IResourceInterceptor.OnRequest 如何路由此事件以更正「myBrowser」實例

或者是否有更好的方法來實現此需求?

我希望得到一個答案這個時候:)

回答

1

你不應該回正確的情況下需要手動路線。發送請求的mybrowser實例或websession將在您返回OnRequest方法中的ResourceResponse時獲得響應。如果由於某種原因,您確實需要MyBrowser實例,請保留DictionaryId,MyBrowser而不僅僅是MyBrowser的列表,然後您可以索引所需的瀏覽器。 viewid應該在你創建的webview中。