今天在开发phonegap的插件的时候在调用cordova.exec()时遇到了错误
后来通过在网络上的查询发现原来是在调用cordova.exec()时,phonegap的本地API还没初始化完毕的问题。
因此可以等phonegap的所有本地api都已准备好后再调用。
解决方法:使用deviceready事件通知应用,设备就绪,phonegap的所有本地api都已准备好在调用自己的cordova.exec()。
代码如下:
window.οnlοad=function(){
document.addEventListener("deviceready", myDeviceReadyListener, false);
function myDeviceReadyListener(){
window.echo = function(str, callback) {
ordova.exec(callback, function(err) {callback('Nothing to echo.');}, "Echo", "echo", [str]);
};
window.echo("echome", function(echoValue) {
alert(echoValue == "echome"); // should alert true.
});
}
}