2012-03-06 11 views
0

私は独自のプラグインを作成しました。これはjavaで書かれたクラスを呼び出します。このプラグインをJavascriptコードから呼び出す必要があります。エラーはコードに記載されています:Phonegap android - window.plugins undefined

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

window.pluginsは定義されていません。
1)私のソースフォルダにLocationFinderプラグインクラスを作成し)は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 /に保存しています。どんな助けもありがとう。

あなたのlocationlisting.jsファイルで、登録部を逃した
+0

を作成したサンプルプラグインテンプレートのカップルを参照することができますplugins.xml、value = "" stringはどうすればよいですか?私はそれを書いた方法として大丈夫ですか? また、PluginクラスLocationFinderは、srcディレクトリまたは他のディレクトリにあります。 – Catie

+0

'value'はクラスの完全なパッケージ名でなければなりません。あなたが言及したように 'LocationFinder.java'は' com.phonegap.plugins.locationListing'パッケージの下になければなりません – dhaval

答えて

0

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

あなたは私がにプラグインを追加し、私はポイント2)についてhere