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