документация по телефонной пробке для плагинов - отстой.Честно говоря у меня была куча проблем при попытке создать свою.Несколько советов:
причина для выполнения
var MyPlugin = {};
заключается в том, что это позволяет нам охватывать вещи, специфичные для этого объекта js.пример:
MyPlugin.myFunction();
Мой любимый способ создания плагинов, аналогичный вашему вопросу, - это их прототипирование
var MyPlugin = {}; // our object
MyPlugin.prototype.myFunction = function(success,fail,types){
}
Ключ к запуску плагина заключается в следующем -
PhoneGap.exec(success,fail,"MyPlugin","myFunction",types);
Но то, что они пропускают, это то, что если мы хотим иметь опции для нашего плагина?Что если мы хотим сделать больше, чем передать строку, то пример не работает.Исправление легко, но не обсуждается вообще.
var MyPlugin = {};
MyPlugin.prototype.myFunction = function(success,fail,options){
var defaults = {
foo: '', // these are options
bar: '',
};
// this parses our "options"
for(var key in defaults) {
if(typeof options[key] !== "undefined") defaults[key] = options[key];
}
return PhoneGap.exec(success,fail,"MyPlugin","myFunction",[defaults]);
}
когда мы вызываем это без javascript -
var foo = MyPlugin.myFunction(success,fail,{
foo:'hello',
bar:'world'
});
Вы заметите, что большая часть API phonegap использует этот синтаксисМне показалось странным, что их документация на самом деле не говорит о том, как это сделать.
У меня есть пост о плагине, который я создаю, вы можете проверить его для справки.Блог - http://www.drewdahlman.com/meusLabs/?p=138 Git - https://github.com/DrewDahlman/ImageFilter