如何在Cordova插件中包含Promise polyfill

时间:2015-06-21 09:44:49

标签: javascript promise cordova-plugins

我正在测试使用Javascript Promise API的Cordova插件(https://github.com/mutualmobile/cordova-bluetoothle/blob/master/src/www/bluetoothle.js)。该插件将用于Android应用程序,该应用程序具有使用Chrome 30运行的webview。此版本的Chrome相对较旧,并且本身不支持Promise API。而不是使用Crosswalk我想使用promisejs.org(https://www.promisejs.org/polyfills/promise-6.1.0.js)中的代码将Promise API作为polyfill包含在内。任何人都可以建议如何将polyfill包含在上面链接的插件中?我已尝试将以下内容添加到plugin.xml文件中,但似乎无法解决如何在bluetoothle.js

中引用它
<js-module src="www/promise-6.1.0.js" name="Promise">
    <clobbers target="promise"/>
</js-module>

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

promisejs.org polyfill以非常规方式打包,您可以使用在模块末尾使用简单module.exports的taylorhakes/promise-polyfill

为了保留本机Promise,只需改变以下的导出行:

module.exports = Promise;

为:

module.exports = root.Promise || Promise;

并将其添加到config.xml

<js-module name="Promise" src="www/Promise.js">
    <clobbers target="Promise" />
</js-module>