0

cordova のロールを使用してカスタム プラグインを作成しました。プラグインのキー/値を cordova.plist に追加し、ネイティブ ios コードでプラグインを記述しました。しかし、フローページに一度アクセスした後にのみ結果を取得できます。どこが間違っていたのかわかりません。cordova js に初期化が必要な場合は?

<!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>
4

2 に答える 2

2

プラグインが何をしようとしているのかを知り、そのコードを確認しない限り、何が問題になっているのかを正確に知ることは困難ですが、これが私の最善の推測です。

Cordovaプラグインは、オンデマンドで遅延ロードされます。exec()したがって、プラグインは、少なくとも1回呼び出すまでアクティブになりません。プラグインが、Javascriptが毎回要求することなく、情報を使用してJavascriptをときどき呼び出すことを目的としている場合は、プログラムの開始時にinitializeプラグインのメソッドを呼び出す必要があります。exec()

于 2012-09-17T12:50:55.447 に答える