javascript - PhoneGap - exec() 调用未知插件

标签 javascript android cordova

我一直在尝试使用 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 中的方法?或者我错过了什么?

最佳答案

从 cordova 3.5.0-0.2.6 开始,res/xml/config.xml 在构建时被覆盖。尝试将功能标记添加到应用程序根目录中的 config.xml。为我工作。

关于javascript - PhoneGap - exec() 调用未知插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18886211/

相关文章:

android - ViewPager 检测用户何时尝试滑出边界

ios - 打开 Phonegap 应用程序时应用程序角标(Badge)消失?

javascript - typescript 命令 "tsc"未定义。尝试了所有已知的解决方案

javascript - 不光滑的方法不起作用

java - JSON对齐其循环相同的项目

android - 在 Android Studio 中更新 buildToolsVersion '23.0.1' 后出现内存不足问题

ios - 如何在 Cordova 中压缩(压缩)SQLITE 数据库文件?

ios - 如何使用 Cordova 6 在 iOS 中关闭 "Requires Full Screen"选项?

javascript - 如何以 react 形式传递单选按钮的值?

javascript - 构造函数 props 状态 vs 简单状态