我正在创建我的第一个 Cordova 插件以使用开源 SDK。我在没有回调的情况下运行它时遇到了问题,因为库没有任何东西(想想分析之类的东西)。还有很多不同的格式,wiki 已经有 2 年历史了,所以我不确定做事的正确方法是什么。
我尝试了几种不同的插件设置变体,但没有一个能成功。
我的.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()
}
})
})();
setup 函数有 4 个参数,都是字符串。我将 MyPlugin.js 包含在 index.html 文件中,然后在 onDeviceReady() 中调用:
window.plugins.myPlugin.setup('xxx-x-xxx','xxxx','xxxx','xxxx');
每当我尝试运行时,我都会收到错误消息[INFO] Error in success callback: NetworkStatus0 = TypeError: 'undefined' is not an object
。
我试过谷歌搜索和诸如此类的东西,发现了几种不同的PhoneGap插件格式,我都试过了,都没有。如果有帮助,我正在使用 Cordova 1.6.1。
这是我尝试模仿的不同结构的列表:
- https://github.com/chbrody/Cordova-ios-UniqueDeviceId/blob/master/UniqueDeviceId.js
- https://github.com/purplecabbage/phonegap-plugins/blob/master/iPhone/BarcodeScanner/barcodescanner.js
- https://github.com/phonegap/phonegap-plugins/blob/master/iOS/BarcodeScanner/barcodescanner.js
- https://github.com/purplecabbage/phonegap-plugins/blob/master/iPhone/ChildBrowser/ChildBrowser.js
它们都产生相同的错误,所以我不确定问题是什么。
编辑:我还应该提到,我的 Obj-C 代码没有被调用。JS调用与插件的实际功能无关...