Windows 8 使用 Cordova 的本机插件

Native Plugin For Windows 8 Using Cordova

我正在 cordova 中创建一个 windows8 插件,但我想像 .winmd 一样与我的插件集成本机构建,以便通过 Winjs 我调用 c# 中的该库的函数。我已经将参考和代码添加到插件文件夹和项目中。但它仍然会抛出错误 WinRt 错误:class 不是 register/JavaScript 错误:class 未定义。

我正在 WP 中创建相同的插件,但是 windows8 使用具有本机功能的 cordova winjs 插件开发存在问题。请帮助解决这个问题,提供一些示例,链接等

已更新:

似乎要从使用当前 VS Tools for Cordova 版本的 Cordova 项目引用 WinRT 组件,您需要按照此处的说明进行操作:

https://msopentech.com/blog/2014/11/24/using-windows-runtime-component-with-cordova-project/

特别是,第 1 部分描述了如何通知 Cordova 构建工具有关您的 WinRT 组件的信息,以便它可以在 AppX 清单中引用 it/them,并在输出包中包含组件二进制文件.


较早的笔记:

你真的需要把它写成一个Cordova插件吗? Windows JS 应用程序支持非常简单地集成自定义 WinRT 组件,这些组件可以用 C++ 或 C# 编写。您只需要在您的解决方案中创建一个新的 Windows Runtime Component 项目,定义一个 public sealed class 和您想要公开的 methods/properties,然后添加一个引用您的 JS 应用程序项目到 WinRT 组件(右键单击引用,select 添加引用,然后选择组件项目)。

也就是说,请注意包含 C# 组件的性能影响(特别是如果您需要在启动期间加载它)以及加载 CLR 和所有 .NET 依赖项对内存使用的影响。还要记住,C# 不是 "native",所以如果你这样做,它就不是真正的 "native plugin" :-)

如果您描述了您的目标,您也可能会得到更好的建议(即您需要本机插件来处理您实际上 运行 反对 JS 性能限制的东西——这是一个相当特殊的情况)。