繁体   English   中英

如何在Windows Phone混合应用程序中将参数从javascript传递到C#方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM