0

Xcodeから関数をトリガーするにはどうすればよいですか? 私は Cordova を使用しており、Xcode イベントのクラスが登録されたときtestFunctionに JavaScript 側でトリガーするサンプル プラグインを作成していますか?

アップデート

だから私がしたことは、[ex1.0]をインスタンス化し、[ex2.0]をロードし、通知が受信されたときに[ex3.0]を呼び出すことでした。

このサンプル関数を作成しました ex1.0 var test = function(){ }

test.prototype.callbackIdx = 0;
test.prototype.callbackMap = [];


test.prototype.TestFunction = function( success ) {
   var key = 'TestFunction' + this.callbackIdx++;
   window.plugins.test.callbackMap[key] = {
       success:function(result){
         delete window.plugins.test.callbackMap[key];
         success(result);
       }
   };
   var callbackPrefix = 'window.plugins.test.callbackMap.'+key;
}


cordova.addConstructor(function(){
   if(!window.plugins){
      window.plugins = {};
   }

   window.plugins.test = test();
}

//CALLING IT ON JAVASCRIPT
ex2.0
window.plugins.test.TestFunction(
  function(result){
    console.log("DID TRIGGER! HOORAY!");
  }
);

//ON XCODE
ex3.0
window.plugins.test.callbackMap.TestFunction0.success("TEST");

それでも、「DID TRIGGER! HOORAY!」は表示されません。私のコンソールで。

4

1 に答える 1

0

CDVPlugin クラスのメンバーである writeJavaScript 関数があります。それを使用して、ネイティブの obj-c レイヤーから JS を実行します。ここに例があります: http://www.tricedesigns.com/2012/03/01/pushing-data-to-a-phonegap-web-view/

この例は PhoneGap 1.5 で書き戻しましたが、それでも動作するはずです。プラグイン クラスの名前が Cordova の名前に変更されていることに注意してください。 PGPluginは nowCDVPluginであり、JavaScriptPhonegap.exec()では nowcordova.exec()です。それ以外の場合は、多かれ少なかれ同じはずです。

于 2012-11-22T01:14:36.577 に答える