Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以在silverlight应用程序中使用JS吗?_Javascript_C#_Silverlight - Fatal编程技术网

Javascript 我可以在silverlight应用程序中使用JS吗?

Javascript 我可以在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

我有Silverlight应用程序。例如,我想添加一些可以与SL应用程序交互的JS脚本。例如,我想添加谷歌地图使用JSAPI。我可以这样做,但我必须将一些数据从SL发送到JS,以便在地图上添加图钉、在地图上绘制图形等。

如果您使用的是Windows Phone,并且您不介意xaml的这一部分成为您可以使用的网络视图

首先将webview添加到xaml

<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" }));