从Cordova Xcode插件触发javascript函数

从Cordova Xcode插件触发javascript函数,xcode,cordova,phonegap-plugins,Xcode,Cordova,Phonegap Plugins,如何从Xcode触发函数?我正在使用Cordova并创建一个示例插件,当Xcode事件中的类注册时,它将在我的javascript端触发一个testFunction 更新 所以我所做的是实例化[ex1.0],然后加载[ex2.0],然后在收到通知时在我的xcode上调用[ex3.0] 我已经创建了这个示例函数 ex1.0 var测试=函数(){ } 但是我在我的控制台上没有看到任何“DID TRIGGER!HOORAY!”。有一个writeJavaScript函数,它是CDVPlugin类的成员

如何从Xcode触发函数?我正在使用Cordova并创建一个示例插件,当Xcode事件中的类注册时,它将在我的javascript端触发一个
testFunction

更新

所以我所做的是实例化[ex1.0],然后加载[ex2.0],然后在收到通知时在我的xcode上调用[ex3.0]

我已经创建了这个示例函数 ex1.0 var测试=函数(){ }


但是我在我的控制台上没有看到任何“DID TRIGGER!HOORAY!”。

有一个writeJavaScript函数,它是CDVPlugin类的成员。使用它从本机obj-c层执行JS。我举了一个例子:


我在PhoneGap 1.5中写过这个例子,但它应该仍然有效。请记住,插件类已使用Cordova命名重命名
PGPlugin
现在是
CDVPlugin
,在JavaScript
Phonegap.exec()
中现在是
cordova.exec()
。否则应该差不多。

是的,我想几个月前我关注的是你的帖子。但我会澄清我想做的是Xcode->Javascript而不是Javascript->Xcode。你是说Obj-C->Javascript?这篇文章展示了如何使用writeJavaScript方法从Obj-C执行JS。因此,您可以从插件中执行以下操作:[self-writeJavascript:@“alert()”];或者,您可以引用web视图并使用stringByEvaluatingJavaScriptFromString函数,如下所示:[webView stringByEvaluatingJavaScriptFromString:@“alert()”;我从未尝试引用回调映射。
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");