Awesomium-sharpで、C#コードを次のように記述しました。
WebControl webControl = new WebControl();
webControl.CreateObject("external");
SetObjectCallback("external", "JSCallback", OnJSCallback);
private int count = 0;
private void OnJSCallback(object sender, JSCallbackEventArgs e)
{
Console.WriteLine("hi");
MessageBox.Show("hi");
if (count == 0)
{
Thread worker = new Thread(func =>
{
Thread.Sleep(3000);
OnReturn();
});
worker.Start();
}
if (count == 1)
{
Thread worker = new Thread(func =>
{
Thread.Sleep(5000);
OnReturn();
});
worker.Start();
}
count++;
}
private void OnReturn()
{
webControl.Dispatcher.BeginInvoke((ThreadStart) delegate()
{
webControl.CallJavascriptFunction("", "CallFromNative", new JSValue[] {new JSValue("hello")});
});
}
javascriptコードは次のようになります。
external.JSCallback("hello ", "world");
external.JSCallback("wtf ", "dude");
奇妙な問題は、Javascriptからの2番目の呼び出しが無視され、実行されないように見えることです。私のコードの何が問題になっていますか?ところで、AwesomiumSharpのバージョンはV1.6.6です。