我想从windows phone 8中的html页面调用c#方法。目前我正在尝试使用以下代码,但它无法正常工作
JavaScript:
<input id="Button1" type="button" value="button" onclick="window.external.something();" />
和mainpage.xaml中的c#方法
void something()
{
MessageBox.Show("called from javascript");
}
任何人都可以告诉我从java脚本调用c#代码隐藏方法的方法。即如何将变量从javascript传递到c#方法,反之亦然。
答案 0 :(得分:3)
您必须使用window.external.notify("string")
并且必须在后面的代码中注册浏览器的ScriptNotify
事件才能接听电话。
你这样注册:
MyWebBrowser.ScriptNotify+=OnScriptNotify;
你这样消费:
OnScriptNotify(object sender, NotifyEventArgs e){
//do something e.Value contains the string passed as a parameter
}
要做反向(从后面的代码调用JavaScript中的函数),你可以:
MyWebBrowser.InvokeScript("functionName");
MyWebBrowser.InvokeScript("functionWithParam", "param1", "param2");
这些函数返回一个对象。
请务必通过设置MyWebBrowser.IsScriptEnabled = true;