[英]Calling Javascript from C# Windows Phone App - Is it a good method?
[英]How to pass parameter from javascript to C# method in windows phone hybrid application
我正在创建一个混合Windows Phone应用程序,其中我需要通过script.notify
将参数从html中的javascript函数传递给c#方法。
HTML
<html>
<body onload="junk('hello')">
<script>
function junk(name) {
window.external.notify("Hello " + name);
}
</script>
</body>
</html>
我的问题是如何在C#中获取此特定方法的参数junk()
如果我使用下面的代码,我将从所有方法中接收所有参数,但我仅需要junk()
方法中的参数
void webBrowser_ScriptNotify(object sender, NotifyEventArgs e)
{
MessageBox.Show(e.Value);
}
您将从WebBrowser控件中收到所有方法的通知(来自所有方法),因为事件处理程序webBrowser_ScriptNotify
已链接到该WebBrowser:
摘自Matthias Shapiro博客的代码示例(尽管您已经在执行此操作,但是上面的信息中缺少了该示例)
我们可以告诉我们的应用在WebBrowser的XAML中处理该脚本启动:
<phone:WebBrowser x:Name="Browser" ScriptNotify="HTML_Script_Launched" />
或通过在xaml.cs文件中分配它
Browser.ScriptNotify += HTML_Script_Launched;
当然,您的处理程序称为“ webBrowser_ScriptNotify”,其读法为“ HTML_Script_Launched”。
因此,在webBrowser_ScriptNotify
您将必须确定window.external.notify
是从哪个方法/源执行的。
也许NotifyEventArgs e
对象包含其他信息? (我自己没有对此进行调查)
或者,您可以定义自己的格式以发送消息(在本例中为junk()方法)并发送消息的详细信息。 如果可以的话,一种“元数据”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.