Phonegap android - window.plugins undefined

时间:2012-03-06 04:02:07

标签: phonegap-plugins

我创建了自己的插件,它调用了用java编写的类。我想从Javascript代码中调用此插件。错误出现在代码中:

window.plugins.locationListing.list("/sdcard",
        function(r){gotLocation(r)},
        function(e){onError(e)}
);

window.plugins未定义。

以下是我所做的事情:
1)在我的源文件夹中创建了一个LocationFinder插件类 2)将插件添加到res / xml / plugins.xml

<plugin name="LocationFinder" value="com.phonegap.plugins.locationListing.LocationFinder"/>

3)创建了一个名为locationlisting.js的JavaScript文件:

var LocationListing = function() {
};

LocationListing.prototype.list = function(directory, successCallback, failureCallback) {
  return PhoneGap.exec(successCallback,    
      failureCallback,
      'LocationFinder',
      'list',
      directory);
};

4)在我的main.html中添加了locationlisting.js,main.js,phonegap-1.0.0.js。
5)从我的main.js,我调用插件,这是我执行上面编写的第一段代码,复制如下:

function callPlugin() {
    window.plugins.locationListing.list("/sdcard",
        function(r){gotLocation(r)},
        function(e){onError(e)}
    );
}

这是window.plugins未定义的地方。可能是什么问题呢?我将所有js文件存储在www /中。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您在locationlisting.js文件中错过了注册部分:

PhoneGap.addConstructor(function() {
    PhoneGap.addPlugin("locationListing", new LocationListing());
});

您可以参考我创建的几个示例插件模板here