Livecode mobileДобавитьКонтакты

Кто-нибудь использовал mobileAddContact на ios и сумел добавить адрес?

Пока я могу добавить имя, контактные данные (телефон, адрес электронной почты и т. д.), но я не могу добавить данные адреса (улица, город, почтовый индекс и т. д.).

Это код, который я написал;

 mobileAddContact \
     "firstname", tFirstName, \
     "middlename", tMiddleName, \
     "lastname", tLastName, \
     "prefix", tPrefix, \
     "organization", tOrganisation, \
     "emailhome", tEmailHome, \
     "phonemobile", tPhoneMobile, \
     "phonehome", tPhoneHome, \
     "phonework", tPhoneWork, \
     "note", tNote, \
     "addressstreethome", "Street Name", \
     "addresscityhome", "City Name", \
     "addressstatehome", "State Name", \
     "addressziphome", "Postcode", \
     "addresscountryhome", "Country"

Любая помощь будет оценена по достоинству.

ТИА, АА.


person Alex Alexander    schedule 07.04.2013    source источник


Ответы (3)


Во-первых, похоже, вы столкнулись с ошибкой, о которой нужно сообщить в RunRev. Я проверил ваш пример и синтаксис в документации, и в вашем сценарии нет ничего, что не должно работать.

Во-вторых, вы можете попробовать несколько вещей, например разделить команду на одну для создания контакта и одну для обновления контакта с информацией об адресе. Вы также можете попробовать поместить всю информацию, включая информацию об адресе, в переменные. Кажется, что в вашем примере пары, содержащие переменные, работают, а пары, содержащие строки, — нет.

В-третьих, интересно, существует ли максимальное количество данных, которые можно хранить в адресной книге. Возможно данные в tNote слишком длинные. Я должен подчеркнуть, что я не уверен, имеет ли последнее значение.

person Mark    schedule 07.04.2013
comment
Привет, Марк, спасибо, что нашли время ответить. В моем исходном коде вся информация была в переменных, поэтому я попытался использовать строки, чтобы перепроверить, что переменные не виноваты. Данные в tNote составляют около 100 символов. Но я постараюсь пока оставить это. Я также рассматривал возможность разделения команды, но я не вижу, как работает обновление, поскольку я не могу использовать ключ контакта в команде mobileUpdateContact (или я мог что-то упустить...) - person Alex Alexander; 08.04.2013
comment
Дальнейшее обновление... Изменение tNote ничего не изменило. Я разделил команду, сохранил ключ и использовал mobileUpdateContact. Это вызвало экран для выбора существующего контакта или добавления нового, поэтому я выбрал существующий. Адрес тоже не добавлялся... Я отправил отчет в Livecode. Скрещенные пальцы... - person Alex Alexander; 08.04.2013
comment
mobileAddContact должен возвращать номер, если контакт создан. Это идентификационный номер нового контакта. Вы можете использовать mobileUpdateContact для обновления контакта. Я знаю, что это неправильное решение, но было бы полезно проверить это и посмотреть, работает ли оно. Если mobileUpdateContact работает, а mobileAddContact нет, то это определенно ошибка, о которой необходимо сообщить. - person Mark; 08.04.2013
comment
Марк, я захватил идентификатор контакта из mobileAddContact, однако mobileUpdateContact не принимает идентификатор, если только я не пропустил что-то в словаре. mobileCreateContact открывает интерактивный диалог, в котором можно указать все детали. Я не хочу его использовать, потому что это противоречит цели экспорта данных в фоновом режиме. - person Alex Alexander; 09.04.2013
comment
Я только что пытался использовать mobileUpdateContact. Как указывает Алекс, в синтаксисе mobileUpdateContact нет возможности включать идентификатор. Если у вас есть существующий контакт с именем, например, Джон Смит, и вы выбираете его в интерфейсе iOS, он не добавляет данные к записи Джона Смита. Если вместо этого вы создаете новый через интерфейс, он делает дублирующую запись в контактах ... и не оставляет вам возможности выйти из отображаемого интерфейса, кроме нажатия аппаратной кнопки «Домой». Очень запутанно! - person Charles B; 30.07.2014

К сожалению, вы обнаружили ошибку в документации. Эта область мобильной функциональности была улучшена в LiveCode 5.5.1 и включала изменение синтаксиса, но не привело к обновлению документации.

Для всех команд mobileContact требуется вложенный массив данных, который используется для создания/обновления контактной информации. Все словарные статьи обновляются и будут в LiveCode 6.0. А пока взгляните на страницу 48 примечаний к выпуску iOS, в которой подробно описано точное использование и формат этих команд.

local tContactData

put "John" into tContactData["firstname"]
put "Smith" into tContactData["lastname"]
put "+44(0)77774443555" into tContactData["phone"]["mobile"][1]

mobileCreateContact tContactData
person Benjamin Beaumont    schedule 08.04.2013
comment
Спасибо Бенджамин. Я предполагаю, что вы имеете в виду примечания к выпуску iOS 6.0. Где их найти? - person Alex Alexander; 08.04.2013
comment
runrev.com/downloads/livecode/5_5_4/LiveCodeNotes-5_5_4- iOS.pdf — страницы 44–48 - person Benjamin Beaumont; 08.04.2013
comment
Бенджамин, я не вижу в этом документе упоминания о массивах. Вы уверены, что это правильный файл? - person Mark; 08.04.2013
comment
Я попробовал предложение Бенджамина с помощью mobileAddContact, но, похоже, это тоже не работает. Я попробовал детали адреса, например [адрес][улица][дом][1], но теперь контакт создается без каких-либо подробностей (без имени!). Когда я попробовал mobileCreateContact, он открыл интерактивный диалог со всеми пустыми полями. - person Alex Alexander; 09.04.2013
comment
поместите элемент 1 tNameDetails в tContactData[prefix] поместите элемент 2 tNameDetails в tContactData[firstname] поместите элемент 1 tNameDetails2 в tContactData[address][home][1][street] поместите элемент 2 tNameDetails2 в tContactData[address][ home][1][city] поместил элемент 3 tNameDetails2 в tContactData[address][home][1][state] поместил элемент 4 tNameDetails2 в tContactData[address][home][1][zip] поместил элемент 5 из tNameDetails2 в tContactData[address][home][1][country] mobileAddContact tContactData - person Alex Alexander; 09.04.2013

Я только что проверил код, который вы опубликовали, но заменил ваши переменные строками. Я создал пустой стек с кнопкой и полем и поместил в кнопку следующий код:

on mouseUp
   put "mr" into tContactData["prefix"] 
   put "ben" into tContactData["firstname"] 
   put "street" into tContactData["address"]["home"][1]["street"] 
   put "city"  into tContactData["address"]["home"][1]["city"] 
   put "state" into tContactData["address"]["home"][1]["state"] 
   put "zip" into tContactData["address"]["home"][1]["zip"] 
   put "country" into tContactData["address"]["home"][1]["country"] 

   mobileAddContact tContactData
   put the result into field 1
end mouseUp

Вы заметите из словаря, что он помещает числовой идентификатор контакта в «результат» в случае успеха. В моем случае у моего симулятора iOS не было контактов, поэтому я получил «1», и когда я перешел к своим контактам, у меня была одна запись ... «мистер Бен».

Надеюсь, это поможет.

person Benjamin Beaumont    schedule 09.04.2013
comment
Бен, я скопировал твой код и запустил его как на iPad, так и на симуляторе, используя 5.5.4. В обоих случаях запись была создана как «Без имени без каких-либо данных». Я не могу протестировать его с 6.0, потому что не могу создать автономный. Я отправил еще один вопрос об этом сегодня! - person Alex Alexander; 11.04.2013