웹킷 - 샤프에서 가까운 웹 - 뷰와 콘솔 - 메시지 신호를 캡처하는 방법을 알아 내려고 노력했습니다. (불행히도 우분투 16.04에서 사용 가능한 webkitsharp를 사용해야합니다. 포장).웹킷 - 샤프에서 콘솔 메시지 캡처하기
나는이 작업을했다고 생각했지만, 그렇지 않은 것 같습니다. 나는 또한 정의 ConsoleSignalArgs이
public class MyWebView : WebKit.WebView
{
[Signal("console-message")]
public event ConsoleSignalHandler ConsoleMessage {
add {
Signal signal = Signal.Lookup(this, "console-message", typeof(ConsoleSignalArgs));
signal.AddDelegate(value);
}
remove {
Signal signal = Signal.Lookup(this, "console-message", typeof(ConsoleSignalArgs));
signal.RemoveDelegate(value);
}
}
}
:
첫째,이 웹보기 클래스를 겹쳐 그때 내 웹의 인스턴스를
public delegate void ConsoleSignalHandler(object o, ConsoleSignalArgs e);
:
public class ConsoleSignalArgs : SignalArgs {
public String Source {
get {
return (String)base.Args [3];
}
}
public Int32 Line {
get {
return (Int32)base.Args [2];
}
}
public String Message {
get {
return (String)base.Args [1];
}
}
}
그리고 ConsoleSignalHandler로 정의 이 이벤트를보고 첨부하지만 아무 일도 일어나지 않습니다. 콘솔에서 메시지를 볼 수있게되면서 콘솔 메시지가 전송되고 있음을 알 수 있습니다.하지만이 코드는 WebView 자체에서 본 것입니다.
private void CreateWebView() {
this.m_webView = new MyWebView();
this.m_webView.Editable = false;
this.m_webView.TitleChanged += (o, e) => {
this.Title = "Title Changed Got Fired!";
};
this.m_webView.ConsoleMessage += (sender, e) => {
Console.WriteLine("Console Message Got Here!");
Debug.WriteLine("Got Here!");
};
}
내가 뭘 잘못하고 있니?
부록 : 디버거에서 코드를 중지하고 "신호"속성을 처리하면 NullReferenceException이 throw됩니다.