簡體   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