PhoneGap - exec() 调用未知插件
PhoneGap - exec() call to unknown plugin
我一直在尝试在我的项目中使用 Phonegap 图像调整器插件,但我无法让它工作。
错误日志返回: D/PluginManager(13992): exec() call to unknown plugin: com.webXells.imageResizer
我已将所有必要的内容移动到我的项目文件夹中。结构如下:
/assets
/js
cordova.js
imageresize.js
/www
index.html
upload.html
/src
/com
/webXells
/ImageResizer
ImageResizerPlugin.java
我还将该插件包含在/res/xml
config.xml
中:
<feature name="imageResizer">
<param name="android-package" value="com.webXells.imageResizer.ImageResizePlugin"/>
</feature>
在upload.html
中,我像这样包含了插件:
<script type="text/javascript" charset="utf-8" src="../js/imageresize.js"></script>
这就是我调用方法来使用它的方式:
function onPhotoDataSuccess(imageData) {
window.imageResizer.resizeImage(
function(data) {
var smallImage = document.getElementById('smallImage');
smallImage.style.display = 'block';
image.src = "data:image/jpeg;base64," + imageData;
//image.src = imageData;
},
function (error) {
console.log("Error : 'r'n" + error);
},
imageData,
0.5,
0.5,
{
imageDataType:ImageResizer.IMAGE_DATA_TYPE_BASE64,
resizeType:ImageResizer.RESIZE_TYPE_FACTOR,
format:'jpg'
}
);
}
所以,在imageresize.js
里面,我想使用的方法看起来像这样。如有必要,您可以参考上面的链接:
ImageResizer.prototype.resizeImage = function(success, fail, imageData, width,
height, options) {
if (!options) {
options = {}
}
var params = {
data : imageData,
width : width,
height : height,
format : options.format,
imageDataType : options.imageType,
resizeType : options.resizeType,
quality : options.quality ? options.quality : 70
};
return cordova.exec(success,fail,"com.webXells.imageResizer","resizeImage",[params]);
}
在上面的代码中,我注意到com.webXells.imageResizer
没有按照日志中报告的那样调用。让我感到困惑的是,我已经将其包含在config.xml
中并将java文件移动到src
文件夹中。为什么即使我已经做了所有必要的事情,也不能调用它?
我所做的一些研究,说在plugin.xml
中声明插件,但我res/xml
里面没有文件。所以,我把它放在config.xml
里。其他人建议使用<gap:plugin name="com.phonegap.plugins.example" />
但Eclipse发现错误。
那么,我该如何解决这个问题呢?我是否正确调用了 HTML 中的方法?还是我错过了什么?
从 cordova 3.5.0-0.2.6 开始,res/xml/config.xml 在构建时被覆盖。 尝试将功能标签添加到配置中.xml在您的应用程序中根目录。 为我工作。
您是使用 CLI 添加插件,例如"corodova 添加插件 xyz"还是手动将插件添加到 eclipse 项目?如果您手动添加插件,那么当运行"Cordova运行Android/iOS"时,res文件夹中的配置.xml将被覆盖,因此上述错误。我为此找到了一个黑客/解决方案,因为我使用的是不基于 CLI 的 revmob 插件,我们必须大量添加插件。在您的项目/插件文件夹中有 android.json,您必须在其中添加功能标签.xml以便配置在通过 CLI 运行应用程序时重写
这是示例
"config_munge": {
"res/xml/config.xml": {
"/*": {
"<feature name='"Device'"><param name='"android-package'" value='"org.apache.cordova.device.Device'" /></feature>": 1,
"<feature name='"RevMobPlugin'"><param name='"android-package'" value='"com.revmob.cordova.RevMobPlugin'" /></feature>": 0
}
}
},
试试吧
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何从Java/scala调用js美化程序
- 如何调用这个匿名 JavaScript 函数
- 如何从模块链中调用函数.导出到节点中
- 我需要从php调用javascript或jquery
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 对广告服务器的未知信标调用
- 反汇编的javascript jit代码调用未知函数
- 尝试从javascript调用flash方法时出现未知错误
- PageMethods调用使用1参数成功,但在2上失败(未知web方法)
- 调用参数数量未知的回调
- 当列表长度未知时按顺序调用 http.get
- PhoneGap - exec() 调用未知插件
- 由于未知原因,Angular按钮正在调用表单提交按钮
- 为什么在返回另一个函数调用之前对未知参数调用void
- 自调用函数中的未知参数
- WPF - 调用 JavaScript 函数时出错 - 名称未知.(HRESULT的例外:0x80020006(DISP
- RangeError:未知原因超出了最大调用堆栈大小
- 从Applet调用JS:MalformedURLException:未知协议:javascript