cordova/exec 在流星项目中失败
cordova/exec fails within meteor project
在使用 plugman
构建 Cordova 插件后,将其安装在 meteor 2.3.2 和 运行 meteor run android-build
中,我在插件中收到以下错误:
Unable to resolve some modules:
"cordova/exec" in ~/MeteorApp/MyPlugin/www/MyPlugin.js (web.browser)
错误行来自生成MyPlugin.js
中的第2行
// ~/MeteorApp/MyPlugin/www/MyPlugin.js
// I added this check for cordova myself
if (cordova && cordova.exec ) {
var exec = require('cordova/exec');
exports.coolMethod = function (arg0, success, error) {
exec(success, error, 'MyPlugin', 'coolMethod', [arg0]);
};
}
我的 meteor 结构包括应用程序路径中的插件文件夹
我使用 meteor add cordova:my.plugin.id@file://path/to/plugin/project
安装了软件包
科尔多瓦版本 10.0.8
我有以下插件结构:
pluginDir/
src/
android/
MyPlugin.java
www/
MyPlugin.js
package.json
plugin.xml
我已经在 Cordova 应用程序中测试了该插件,效果很好。
我敢打赌这里的问题是 meteor 如何公开内部 Cordova 对象。
解决方案
Meteor 已经包装了 cordova 对象,所以实际上我不必在 /www 插件定义中导入 cordova/exec,我只需要使用 cordova.exec('my logic goes here')
上面的内容是 plugman
的脚手架,自动生成 /www 文件夹和文件,以及上面的代码。
以上代码在 Cordova 中有效,但此逻辑在 Meteor 中失败。
额外评论
此插件只需要 Android 支持,cordova.exec()
逻辑已移至 Meteor api 方法中。
因为这个 Android-only 要求删除了 /www 文件夹和引用。
将来可能会重新引入 /www 文件夹,以便为 Web 使用场景定义一个很好的回退,但不太可能用于我们的内部插件。
在使用 plugman
构建 Cordova 插件后,将其安装在 meteor 2.3.2 和 运行 meteor run android-build
中,我在插件中收到以下错误:
Unable to resolve some modules:
"cordova/exec" in ~/MeteorApp/MyPlugin/www/MyPlugin.js (web.browser)
错误行来自生成MyPlugin.js
中的第2行// ~/MeteorApp/MyPlugin/www/MyPlugin.js
// I added this check for cordova myself
if (cordova && cordova.exec ) {
var exec = require('cordova/exec');
exports.coolMethod = function (arg0, success, error) {
exec(success, error, 'MyPlugin', 'coolMethod', [arg0]);
};
}
我的 meteor 结构包括应用程序路径中的插件文件夹
我使用 meteor add cordova:my.plugin.id@file://path/to/plugin/project
科尔多瓦版本 10.0.8
我有以下插件结构:
pluginDir/
src/
android/
MyPlugin.java
www/
MyPlugin.js
package.json
plugin.xml
我已经在 Cordova 应用程序中测试了该插件,效果很好。
我敢打赌这里的问题是 meteor 如何公开内部 Cordova 对象。
解决方案
Meteor 已经包装了 cordova 对象,所以实际上我不必在 /www 插件定义中导入 cordova/exec,我只需要使用 cordova.exec('my logic goes here')
上面的内容是 plugman
的脚手架,自动生成 /www 文件夹和文件,以及上面的代码。
以上代码在 Cordova 中有效,但此逻辑在 Meteor 中失败。
额外评论
此插件只需要 Android 支持,cordova.exec()
逻辑已移至 Meteor api 方法中。
因为这个 Android-only 要求删除了 /www 文件夹和引用。
将来可能会重新引入 /www 文件夹,以便为 Web 使用场景定义一个很好的回退,但不太可能用于我们的内部插件。