10

基本的なアプリを作成するためにawesomiumを試していますが、js <----> c#通信をテストしていますが、これはうまく機能していないようです...ローカルhtmlを作成して開きます。 ..しかし、jsを呼び出そうとしても、何も起こらず、エラーもバグも何もありません。単にjsを呼び出さないだけです。

私の基本的なjsコードは次のとおりです。

 var base = {

    newItem : function(item){
    $("#botones").append('<div class="botonMenu">' + item + '</div>');
  },

  other : function(){
      alert("hi!!");
  }

  }

これをfirebug内でテストすると、明らかに関数をうまく呼び出すことができ、アイテムまたはアラートボックスが作成されます...

今..私のc#コードはこれです

//I've wrote this code inside the winForms sample..but change the code for load
//my local file and call js....


WebCore.BaseDirectory = @"C:\Documents and Settings\ME\dummytests\codes\views";
webView.LoadFile("base.html");


JSValue param1 = new JSValue("nameItem");
webView.CallJavascriptFunction("base", "other");
webView.CallJavascriptFunction("base","newItem", param1);
webView.Focus();

ファイルはうまくロードされていますが、js通信はあまりうまくいきませんでした。私が助けてくれることを願っています...この素晴らしいものは本当に素晴らしく見えます

4

2 に答える 2

4

問題は、読み込みが完了する前にページで Javascript を呼び出そうとしていることです。ロードが完了するまで待つと、正しく実行されるはずです。

webView.LoadCompleted += ExecuteJavascript;

WebCore.BaseDirectory = @"C:\Documents and Settings\ME\dummytests\codes\views";
webView.LoadFile("base.html");

...

private void ExecuteJavascript(object sender, EventArgs eventArgs)
{
    JSValue param1 = new JSValue("nameItem");
    webView.CallJavascriptFunction("base", "other");
    webView.CallJavascriptFunction("base", "newItem", param1);
    webView.Focus();
}
于 2012-06-08T19:46:43.420 に答える