2012-09-17 52 views
0

我使用cordova的角色创建了一个自定义插件。我已经将插件的关键字/值添加到cordova.plist,并在本机ios代码中编写了插件。但是我只能在访问过一次页面之后才能得到结果。我不知道哪里出了问题。如果cordova js需要一些初始化?为什么我的自定义插件只能在cordova(phonegap)中访问过一次后才能工作?

<!DOCTYPE html> 
<html> 
<head> 
<title>Overview</title> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

<script src="js/jquery.min.js"></script> 
<script type="text/javascript" src="cordova-2.0.0.js"></script> 

<style type="text/css"> 

    *{ margin:0; 
     padding:0; 
    } 

    body { 
     margin-left:0px; 
     width:1024px; 
     background-image: url("content/main/defaultbg.jpg"); 
     background-size:1024px 768px; 
    } 

</style> 
</head> 
<body> 
    <div id="slr_left_title"> 
    html code .... 
    </div> 
<script> 

setTimeout(function(){ 

    window.getReportList = function(reportCategory, successCallback) { 
     cordova.exec(successCallback, function(err) { 
        callback('get the category list error!'); 
        }, "SLReportList", "getlist", [reportCategory]); 
    }; 

    window.getReportList("atestcategory", function(result) { 
       alert(result); 
    }); 
},0); 
</script> 
</body> 
</html> 

回答

2

很难知道到底发生了什么错误不知道你的插件试图做的,看到自己的代码,但这里是我最好的猜测。

科尔多瓦插件是按需延迟加载的。因此,除非您至少拨打exec()至少一次,否则您的插件将无法使用。如果你的插件是偶尔用信息调用Javascript的,而且每次都没有Javascript请求,那么你需要在程序开始时在exec()插件上调用initialize方法。

相关问题