我一直在尝试在我的项目中使用Phonegap Image Resizer插件,但我无法让它工作。
错误日志返回:
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
我还将插件包含config.xml
在/res/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
没有像 logcat 中报告的那样调用。让我感到困惑的是,我已将它包含在config.xml
其中并将 java 文件移动到文件src
夹中。为什么即使我已经完成了所有必要的事情,它也不能被调用?
我做了一些研究,说要在 中声明插件plugin.xml
,但我没有里面的文件res/xml
。所以,我把它放进去config.xml
。
其他推荐使用<gap:plugin name="com.phonegap.plugins.example" />
,但 Eclipse 发现此错误。
那么,我该如何解决呢?我是否正确调用了 HTML 中的方法?还是我错过了什么?