PhoneGap.exec был разработан для простых типов.Ваш путь в порядке, в качестве альтернативы вы можете просто передать свой единственный объект (будет работать только для одного объекта, см. Нижний колонтитул о том, как мы упорядочиваем команду), и он должен быть в словаре опций для команды.Затем на стороне Objective-C используйте кодирование значения ключа, чтобы автоматически заполнить ваш пользовательский объект словарем.
например, MyCustomObject * blah = [MyCustomObject new];[blah setValuesForKeysWithDictionary: options];
Если вам интересно, как работает PhoneGap.exec, читайте дальше ...
* --------- *
Для PhoneGap.exec аргументы javascript маршалируются в URL.
Для команды JS: PhoneGap.exec ('MyPlugin.command', 'foo', 'bar', 'baz', {mykey1: 'myvalue1', mykey2: 'myvalue2'});
Полученный URL-адрес команды: gap: //MyPlugin.myCommand/foo/bar/baz/? mykey1 = myvalue1 & mykey2= myvalue2
Это будет обработано и преобразовано на стороне Objective-C.foo, bar, baz помещаются в массив аргументов, а параметры запроса - в словарь опций.Он будет искать класс с именем «MyPlugin» и будет вызывать селектор «myCommand» с массивом аргументов и словарем опций в качестве параметров.
Для получения дополнительной информации см. Phonegap.js, посмотрите PhoneGap.run_command