#iphone
Вопрос:
Я работаю над приложением для iPhone, которое позволит просматривать и редактировать данные, которые я хочу синхронизировать с настольным приложением. Я не вижу в SDK ничего, что напрямую касается синхронизации данных, и не могу найти ничего, что позволило бы мне «подключиться» к процессу синхронизации iTunes.
Я мог бы сделать что-нибудь странное, например, скрыть данные в записи фото или адресной книги, но это просто кажется плохой идеей. Я мог бы использовать WebDAV или HTTP для получения/передачи данных на сервер, но это усложняет приложение.
Я предполагаю, что я ожидал, что это будет распространенный вариант использования приложений для iPhone (синхронизация произвольных данных приложений между рабочим столом и iPhone) и что в SDK будет набор API, которые охватывают это. Может быть, так оно и есть, но я просто не могу его найти.
Ответ №1:
Двумя популярными методами являются:
Синхронизация с настольным приложением напрямую через Wi-Fi (с помощью Bonjour и т. Д. чтобы обнаружить конечные точки приложений для iPhone/настольных компьютеров, как предлагали здесь другие).
Другой вариант — синхронизировать с общим расположением файлов-FTP, MobileMe, WebDAV, веб-службы на другом сервере и т. Д. Таким образом, приложение для iPhone и настольного компьютера будет считывать/записывать данные в общее местоположение, чтобы другие могли видеть обновления.
Как уже говорили другие, на данный момент не существует способа, предоставленного Apple (с использованием iTunes или иным образом), и нет никаких признаков того, что что-либо в этом роде произойдет в ближайшем будущем, если только оно не будет связано с будущей поддержкой iPhone для сторонних push-обновлений. (Я действительно сомневаюсь, что это будет так, но вы никогда не знаете наверняка.)
Ответ №2:
Взгляните на :
Комментарии:
1. Выглядит неплохо. Я надеялся, что кто-нибудь придумает что-нибудь подобное, вместо того чтобы изобретать велосипед для каждого выходящего приложения.
Ответ №3:
Я сам этого не пробовал, но я думаю, что Bonjour предоставляет возможность подключения к службам на других машинах, вы можете найти некоторые ответы, изучая это
Ответ №4:
Это распространенная проблема, но, к сожалению, она не решается с помощью SDK.
Поскольку iPhone поддерживает публикацию и обнаружение сервисов Bonjour, вы можете легко опубликовать сервис на телефоне и прослушать его на рабочем столе, подключившись, когда они найдут друг друга. (Или вы можете опубликовать сервис на рабочем столе и подключиться с телефона, в любом случае это не имеет значения.) Вся документация по Bonjour для MacO OS X применима к iPhone OS.
Обратите внимание, что Bonjour просто рекламирует услугу; как только вы ее найдете, вам все равно придется использовать сокеты для подключения и передачи данных.
В принципе, простого способа сделать это не существует, но существует достаточно доступных инструментов, с помощью которых вы можете сделать синхронизацию безболезненной для пользователя.
Ответ №5:
Пример для синхронизации Bonjour: http://cocoa-nut.de/?p=27
Ответ №6:
Просто чтобы обновить этот ответ — за время, прошедшее с момента заданного вопроса, Apple добавила поддержку синхронизации файлов в iTunes (и позволила пользователю получить доступ к ним через вкладку приложений iTunes).
Для этого вам необходимо установить для ключа UIFileSharingEnabled значение ДА в файле Info.plist вашего приложения. Затем вы можете использовать стандартные API ввода-вывода файлов для сохранения файлов в каталоге документов вашего приложения.
Более подробная информация здесь: http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StandardBehaviors/StandardBehaviors.html#//apple_ref/doc/uid/TP40007072-CH4-SW6
Это включает в себя поведение, которое вы должны реализовать (т. Е. Убедитесь, что вы также поддерживаете чтение документов, добавленных в ваш каталог документов, хотя я видел множество приложений, которые этого не делают).
Комментарии:
1. Да, и в iOS 5 также появится поддержка iCloud. Если ваши приложения вообще используют основные данные, будет относительно просто реализовать облачное хранилище, доступ к которому можно получить с помощью приложения для iPhone, настольного приложения или веб-приложения.
Ответ №7:
Я также работаю над приложением, которое должно обмениваться данными, единственный разумный/не взломанный способ, который я нашел, чтобы получать информацию в iPhone и из него, — это через NSURLConnection.
(личное мнение) Я не предвижу, что Apple предоставит крючки для процесса синхронизации.(/личное мнение)