1

Phonegap プラグインを開発しています。私のHTMLファイルは次のようになります。

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
  function fun(){
    alert("hai I am alert");
    window.plugins.Unixell.list(SuccessCallBack ,failureCallBack);
    function SuccessCallBack() {
      alert("success");
    };
    function failureCallBack() {
      alert("failure");
    };
  }
</script>
</head>
<body>
  <input type="button" value="i am button" onclick="fun()" />
  <script src='apis/Phonegap.js'></script>
  <script src='apis/Unixell.js'></script>
</body>
</html>

Unixell.js は次のとおりです。

var cam=function(){};
cam.prototype.list = function(successCallback, failureCallback) {
  return PhoneGap.exec(successCallback,failureCallback, 'Unixell', 'list', [null]);
};
PhoneGap.addConstructor(function() {
  alert("I am in unixell.js3333");
  PhoneGap.addPlugin("Unixell", new cam());
  PluginManager.addService("Unixell", "com.phonegap.plugins.unixell.Unixell");
});

そして、私の com.phonegap.plugins.unixell.Unixell.java ファイルは次のとおりです。

public class Unixell extends Plugin{
  private static final String TAG = "unixell";
  private static final String ACTION = "list";
  @Override
    public PluginResult execute(String action, JSONArray arg1, String arg2) {
      // TODO Auto-generated method stub
      PluginResult result = null;
      result=new PluginResult(Status.OK, "I am a message");
      if(ACTION.equals(action)){
        System.out.println("success");
        LOG.d(TAG,"U R success");
      }
      return result;
    }

しかし、logcat でエラーが発生しました。

Uncaught TypeError: Cannot call method 'list' of undefined at file:///android_asset/www/index.html

問題は何でしょうか?このエラーが発生するのはなぜですか? これに対する解決策は何ですか?

4

2 に答える 2

0

定義したようにUnixell.prototype.listを実行することで関数を取得できると思いますが、Phonegapではあまり機能しませんでした;-)

于 2012-06-18T14:34:43.667 に答える
0

さて、HTML ファイルでは宣言していますがwindow.plugins.Unixell、JS ファイルでは宣言していますvar cam=function(){};。今のところUnixell.listはなく、cam.list関数だけです...

于 2012-06-19T03:58:07.950 に答える