WebBrowser中的HTML与windows phone app之间的通信

时间:2014-08-12 10:28:07

标签: c# javascript windows-phone-8 windows-phone webbrowser-control

我将一些静态html文件下载到Isolated store中。我试图在Windows Phone应用程序内使用Web浏览器控件打开这些文件。现在,每个HTML文件都将通过javascript与后端代码进行通信,window.external.notify()无法应用于所有html页面。

所以我的问题是,

是否有任何API(在iOS中)WebViewJavascriptBridgeGAJavaScript或类似(android)Javascript Interface可用于Windows Phone 8,它将与WebBrowser和Windows Phone应用程序中的HTML进行通信。 WinJS 支持Windows Phone 8的相同功能吗?

1 个答案:

答案 0 :(得分:4)

用于从HTML接收数据到手机:

您需要为WebBrowser的ScriptNotify事件添加事件处理程序。之后,每当你在html页面中调用window.external.Notify(args)时,ScriptNotify将会触发,你将获得NotifyEventArgs参数的Value属性中的args。

在javascript中:window.external.Notify(args);

CS中的

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    browser.ScriptNotify += browser_ScriptNotify;
}

private void browser_ScriptNotify(object sender, NotifyEventArgs e)
{
    var valueFromBrowser = e.Value;
}

将数据从手机传递到HTML:

您需要使用WebBrowser的InvokeScript()方法。你需要在javascript中传递函数的名称并输入参数(如果有的话)。

在javascript中:function doSomething(args) { }

CS中的

browser.InvokeScript("doSomething", args);

希望它有所帮助。