2012-03-06 84 views
0

我創建了自己的插件,它調用java編寫的類。我想從Javascript代碼中調用這個插件。錯誤出現在代碼中:Phonegap android-window.plugins undefined

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

window.plugins未定義。

以下是我所做過的事情:創建一個LocationFinder插件類,在我的源文件夾
1)
2)的添加插件RES/XML/plugins.xml

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

3)創建一個JavaScript文件locationlisting.js:

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 /中。任何幫助,將不勝感激。

+0

對於第2點),在那裏我的插件添加到plugins.xml,value =「」字符串應該是什麼?作爲我寫的方式,它可以嗎? 此外,插件類LocationFinder是否位於src目錄或其他目錄中。 – Catie 2012-03-06 04:04:57

+0

'value'應該是該類的完整包名。如您所述,LocationFinder.java應位於com.phonegap.plugins.locationListing包內 – dhaval 2012-03-14 16:47:38

回答

0

你已經錯過了註冊部分,在你locationlisting.js文件:

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

你可以參考幾個樣品插件模板,我創建here

相關問題