2012-05-14 2 views
2

오픈 소스 SDK와 함께 작동하는 첫 번째 Cordova 플러그인을 만들고 있습니다. 콜백없이 실행하는 데 문제가 있습니다. 라이브러리에 (분석과 같은 것을 생각하지 않기 때문에) 콜백이 없기 때문입니다. 또한 다른 형식이 많으며 위키는 2 세이므로 적절한 방법이 무엇인지 확신 할 수 없습니다.콜백이없는 Cordova Custom Plugin 구조?

플러그인을 설정하는 데 몇 가지 다른 변형을 시도했지만 아무 것도 성공적으로 작동하지 않았습니다.

내의 .js :

;(function(){ 

    if (Cordova.hasResource("myPlugin")) return 

    Cordova.addResource("myPlugin") 

    function MyPlugin() { 
    } 

    MyPlugin.prototype.setup = function(types) { 
     return Cordova.exec("MyPlugin.setup", types); 
    }; 

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

     if (!window.plugins.myPlugin) { 
      window.plugins.myPlugin = new MyPlugin() 
     } 
    }) 

})(); 

셋업 기능은 사 개 인수를, 모든 문자열.

window.plugins.myPlugin.setup('xxx-x-xxx','xxxx','xxxx','xxxx'); 

가 나는 오류 [INFO] Error in success callback: NetworkStatus0 = TypeError: 'undefined' is not an object를 얻을 실행하려고 할 때마다 : 나는 내가 전화() onDeviceReady에 다음 index.html 파일에 MyPlugin.js을 포함한다.

내가 인터넷 검색을 시도하고 몇 가지 다른 PhoneGap 플러그인 형식을 발견하고, 나는 그들을 모두 시도하고 아무도 작동하지 않았습니다. 그게 도움이된다면 Cordova 1.6.1을 사용하고 있습니다. 그래서,

그들 모두가 같은 오류가 발생 : 여기

내가 흉내 해봤 다른 구조의 목록입니다 문제가 뭔지 잘 모르겠습니다.

EDIT : 또한 Obj-C 코드가 호출되지 않아야합니다.

이 1.6와 함께 작동 : 내가 그 일을 가지고 해결책이 포맷에 대해 궁금 다른 사람에 대한 너무

답변

4

좋아 플러그인의 실제 기능과 관련이없는 호출 JS 뭔가 최대 ... 여기 ... 있어요입니다. 1 => 1.9 (하지만 심각한 stack overflow 버그가로 1.9를 사용 해달라고!) 코도 2.0

var MyPlugin() = function() {}; 

MyPlugin.prototype.setup = function(types) { 
    return Cordova.exec("MyPlugin.setup", types); 
}; 

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

    if(!window.plugins) window.plugins = {}; 

    window.plugins.myPlugin = new MyPlugin(); 
}); 

addConstructor 제거 코도 확인하는 것이 필요하지 않다되었다 ..

var MyPlugin() = function() {}; 

MyPlugin.prototype.setup = function(types) { 
    return Cordova.exec("MyPlugin.setup", types); 
}; 

//Keep at bottom but remove the addConstructor for Cordova 2+ 
if(!window.plugins) window.plugins = {}; 
window.plugins.myPlugin = new MyPlugin(); 
,617,
+0

대문자 사용에 문제가 있습니까? 이것에 감사드립니다. 나는 정확한 방향 (코르도바 2.0)으로 들어가는 데 도움을 주었고 여전히 위키는 냄새가났다. – ppumkin

+0

예, 모든 것이 대소 문자를 구별한다. – MishieMoo

+0

예 - 마침내 Cordova 2.0에서 작동하게되었습니다. 나는 대답을 편집했습니다. 그것이 OK라고 생각한다면 그것을 검토하십시오. 더 많은 답변을 작성하는 한 마디 – ppumkin