【问题标题】:Native Plugin For Windows 8 Using Cordova使用 Cordova 的 Windows 8 原生插件
【发布时间】:2015-04-13 09:32:51
【问题描述】:

我正在cordova中创建一个windows8插件,但我想将.winmd之类的本地构建与我的插件集成在一起,这样我就可以通过Winjs调用c#中的那个库的函数。我已经将参考和代码添加到插件文件夹以及项目中。但它仍然会引发错误 WinRt 错误:类未注册/JavaScript 错误:未定义类。

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

【问题讨论】:

    标签: javascript c# cordova windows-8 windows-runtime


    【解决方案1】:

    更新:

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

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

    特别是,第 1 节描述了如何通知 Cordova 构建工具您的 WinRT 组件,以便它可以在 AppX 清单中引用它/它们,并将组件二进制文件包含在输出包中。


    早期注释:

    您是否需要将其实际编写为 Cordova 插件? Windows JS 应用程序非常简单地支持自定义 WinRT 组件的集成,这些组件可以用 C++ 或 C# 编写。您只需在解决方案中创建一个新的 Windows 运行时组件项目,使用要公开的方法/属性定义一个公共密封类,然后将 JS 应用项目的引用添加到 WinRT 组件(右键单击引用,选择添加引用,然后选择组件项目)。

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

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

    【讨论】:

    • 正如你建议我的那样,我已经做了同样的事情。但问题依然存在。 Cordova 插件不允许我们添加另一个 c# 代码的引用。即使在创建对象时也会抛出“类未定义”的错误。
    • 您是否在使用 Visual Studio Tools for Cordova?这是 VS 2013 还是 2015 RC?
    • 使用当前的 Cordova 工具,您需要按照这些说明告诉 Cordova 构建系统包含 WinMD/DLL 并在 AppX 清单中正确引用它。 msopentech.com/blog/2014/11/24/…
    • 我正在使用 Visual Studio Tools for Cordova 2013 。您发布的链接与我已经关注的相同链接。一切都很好,但是在创建 winmd 文件的对象时,它会抛出错误“未定义”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多