0

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

更新

所以我所做的是实例化 [ex1.0] 然后加载 [ex2.0],然后在收到通知时在我的 xcode 上调用 [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");

但是我没有看到任何“触发!万岁!” 在我的控制台上。

4

1 回答 1

0

有一个 writeJavaScript 函数是 CDVPlugin 类的成员。使用它从本机 obj-c 层执行 JS。我在这里有一个例子:http ://www.tricedesigns.com/2012/03/01/pushing-data-to-a-phonegap-web-view/

我在 PhoneGap 1.5 中写了那个例子,但它应该仍然有效。请记住,插件类已使用 Cordova 命名进行重命名。 PGPlugin是现在CDVPlugin,而在 JavaScriptPhonegap.exec()中是现在cordova.exec()。否则它应该或多或少相同。

于 2012-11-22T01:14:36.577 回答