Как обмениваться пользовательскими данными между приложениями iPhone?

Если я сделаю два приложения для iPhone, как я могу / должен делиться пользовательскими данными (не контактами и тому подобным) между ними?

Спасибо!


person Robert Gould    schedule 21.10.2008    source источник


Ответы (5)


Это можно сделать двумя разными способами.

1) Данные, которыми вы должны поделиться, непостоянны. Другими словами, вам нужно запустить одно приложение с фрагментом данных, с которым оно может что-то делать. В этом случае вы должны зарегистрировать специальную схему URL-адресов для каждого приложения.

Дополнительную информацию о схемах URL-адресов можно найти у Крейга Хокенберри в его [отредактированном] сообщении в блоге.

2) Данные, которыми вы должны поделиться, являются постоянными. Другими словами, вам нужно что-то вроде файла данных, который оба приложения могут читать и писать. Насколько мне известно, для этого нет безопасного способа, кроме хранения ваших данных на удаленном сервере. Если вам нужны данные, доступные без подключения к данным, вам нужно будет найти способ синхронизации данных между отдельными приложениями и удаленным сервером.

person Michael Ledford    schedule 21.10.2008

В дополнение к тому, что уже было упомянуто, документация iPhone по подписи кода, похоже, подразумевает, что приложения, подписанные с одной и той же идентификацией, могут получать доступ к одним и тем же элементам Keychain. Если вам нужно хранить относительно небольшие объемы данных (пароли и т. Д.), Это может быть полезным методом.

person Mark Bessey    schedule 21.10.2008
comment
Да, после ответа Майкла Ледфорда, который, насколько я знаю, верен, я начал изучать Связку ключей, я еще не уверен, как правильно подписать, но это может быть решением для обмена небольшими данными (именно паролями) между Приложения. - person Robert Gould; 21.10.2008
comment
Я еще не пробовал, но это похоже на брелок по шагам: shaune.com.au/ios-keychain-sharing-data-between-apps - person leontx; 08.03.2013

Приложения могут совместно использовать каталог контейнера в iCloud.

Из Документ Apple по настройке прав iCloud:

Поле «Контейнеры iCloud» определяет список каталогов контейнеров, к которым ваше приложение может получить доступ в хранилище iCloud пользователя. (Это поле соответствует праву com.apple.developer.ubiquity-container-identifiers.) Строки, которые вы добавляете в этот список, должны соответствовать идентификаторам пакетов для приложений, созданных вашей командой. Xcode использует идентификатор пакета текущего приложения, чтобы указать первую строку; вы можете изменить его на другой идентификатор пакета, если хотите, чтобы несколько приложений использовали общий каталог контейнера. Вы также можете добавить дополнительные идентификаторы пакетов для других приложений вашей команды.

person jlstrecker    schedule 21.10.2011

предполагает, что вы также можете использовать буферы обмена с настраиваемыми именами для обмена информацией между приложениями. Я понимаю, что это более старый пост, но я подумал, что укажу на него, потому что он высоко ценится в результатах Google. :)

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

person livingtech    schedule 05.10.2009

Я могу придумать способ взлома: запись в адресную книгу и чтение из нее с помощью API. , сохраняя данные в доступных полях (возможно, + преобразование NSData для пользовательского изображения). Изменить: я успешно реализовал преобразование NSData и сохранение объектов внутри отображаемого изображения контакта, что сделало их недоступными для редактирования из приложения контактов.

person luvieere    schedule 07.10.2009
comment
+1 за приятный трюк, но я полагаю, что конечного пользователя может раздражать мусор в адресной книге. - person Simon Woodside; 08.06.2010
comment
@sbwoodside Не волнуйтесь, мы упаковываем с приложением таблетку ативана, чтобы он меньше раздражался. Если серьезно, я выбрал путь, который предлагает полную функциональность, о которой задано в вопросе ... это, как всегда, с напоминанием: будьте осторожны с тем, что вы хотите, вы можете просто получить его, в этом случае, с легкое раздражение кажущейся пустой записью адресной книги. - person luvieere; 08.06.2010
comment
не можете ли вы сохранить эти данные в образе уже существующего контакта? например, добавление мусора или EXIF - person RolandasR; 20.08.2011