我一直在尝试在我的项目中使用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
中。
Other建议使用<gap:plugin name="com.phonegap.plugins.example" />
,但Eclipse发现错误。
那么,我该如何解决这个问题呢?我是否正确调用了HTML中的方法?或者我错过了什么?
答案 0 :(得分:1)
从cordova 3.5.0-0.2.6开始,res / xml / config.xml在构建时被覆盖。尝试将功能标记添加到应用根目录中的config.xml。为我工作。
答案 1 :(得分:0)
您是使用CLI添加插件,如“corodova add plugin xyz”还是手动将插件添加到eclipse项目? 如果你手动添加插件,那么当运行“cordova run android / ios”时,res文件夹中的config.xml会被覆盖,所以上面的错误。 我找到了一个hack /解决方案,因为我使用的是基于CLI的revmob插件,我们必须手动添加插件。在你的project / plugins文件夹中有android.json你必须在那个config.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
}
}
},
JUST TRY