Javascript 我可以在silverlight应用程序中使用JS吗?
我有Silverlight应用程序。例如,我想添加一些可以与SL应用程序交互的JS脚本。例如,我想添加谷歌地图使用JSAPI。我可以这样做,但我必须将一些数据从SL发送到JS,以便在地图上添加图钉、在地图上绘制图形等。如果您使用的是Windows Phone,并且您不介意xaml的这一部分成为您可以使用的网络视图 首先将webview添加到xamlJavascript 我可以在silverlight应用程序中使用JS吗?,javascript,c#,silverlight,Javascript,C#,Silverlight,我有Silverlight应用程序。例如,我想添加一些可以与SL应用程序交互的JS脚本。例如,我想添加谷歌地图使用JSAPI。我可以这样做,但我必须将一些数据从SL发送到JS,以便在地图上添加图钉、在地图上绘制图形等。如果您使用的是Windows Phone,并且您不介意xaml的这一部分成为您可以使用的网络视图 首先将webview添加到xaml <phone:WebBrowser Name="webView" BorderThickness="0" BorderBrush="Trans
<phone:WebBrowser Name="webView" BorderThickness="0" BorderBrush="Transparent" IsScriptEnabled="True"
ScriptNotify="WebBrowser_ScriptNotify" />
在背后的代码中,您将看到来自webview的消息,如下所示:
private void WebBrowser_ScriptNotify(object sender, NotifyEventArgs e)
{
var example = new { method = string.Empty, data = new object() };
var obj = JsonConvert.DeserializeAnonymousType(e.Value, example);
switch (obj.method) {
case "methodName":
}
}
你会像这样向js发回消息
function sendMessageToCodeBehind(someData) {
window.external.notify(JSON.stringify({ method: 'AddMessage', data: someData }));
}
webView.InvokeScript("jsMethodName", JsonConvert.SerializeObject(new { Message = "some json message" }));
这就是你要找的。同时也可以帮助你认识到Silverlight有一个Bing地图控件和一个可用的演示。如果你想在Silverlight应用程序中嵌入一个地图,那就容易多了。我没有足够的观点来评论一个问题,所以。。。我的回答一点也不差。我演示了Silverlight可以做到这一点,如果他不使用windowsPhone,他只需要找到一个与phone类似的控件:WebBrowser,这样它就可以在完全信任或浏览器外应用程序的情况下工作。。。对于普通的浏览器Silverlight应用程序,您必须使用Javascript API(如上面评论中留下的链接)。
webView.InvokeScript("jsMethodName", JsonConvert.SerializeObject(new { Message = "some json message" }));