2

我的公司使用在 WebViews 中构建的 Android 应用程序,其中包含一些可通过 JavaScript 界面访问的原生代码。

webView.addJavascriptInterface(new JavaScriptInterface(this), "jsInt");

可以通过 WebView 中的 JavaScript 访问类 JavaScriptInterface 的成员。

<script> jsInt.nativeMethodCall(); </script>

我想知道 Windows 8 是否具有相同的功能。如果是这样,有人可以指出我正确的方向吗?

4

2 回答 2

2

功能不完全相同,但有一种机制可以在 WebView 中从 JavaScript 到 C# 来回通信。

另请记住,HTML 5/JavaScript 是 Windows 8 的本机开发选项,因此您的代码可能根本不需要在 WebView 中运行。您可能会将应用程序移植到 HTML5/JS 目标,然后与其他确实可以用 C# 编写的 Windows 运行时组件进行交互。

也就是说,对于 WebView,它将托管在 C#/XAML 应用程序内部并托管 HTML/JS(如在 Android 中):

InvokeScript将允许您在当前加载的 WebView 文档中从 C# 调用 JavaScript 方法

在您的 C# 代码中,您可以侦听ScriptNotify事件以响应通过 windows.external.notify 传递的有效负载。

这两个都是XAML Web View Control 示例的一部分,并且可以构成一些更像 Android 功能的基础。

于 2012-12-20T20:14:50.213 回答
0

我为此找到了一个简单的教程:Creating a simple component in C# or Visual Basic and call it from JavaScript

于 2012-12-20T20:18:47.770 回答