Ответ
1. Custom URL Schemes Позволяет вашему приложению реагировать на специальные URL. Просто, но требует предварительной установки приложения-получателя.
Отправка:
if let url = URL(string: "myapp://share?text=Hello") {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
Прием (в SceneDelegate):
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
guard let url = URLContexts.first?.url else { return }
// Парсинг url.query для извлечения данных
}
2. Universal Links
Связывают ваш веб-сайт и приложение. Пользователь, переходя по обычной HTTP/HTTPS ссылке, может открыть ваше приложение. Требует настройки apple-app-site-association файла на сервере.
3. App Groups Позволяет обмениваться данными между приложениями от одного разработчика через общий контейнер.
// Запись данных
if let sharedDefaults = UserDefaults(suiteName: "group.com.yourcompany.appgroup") {
sharedDefaults.set("sharedValue", forKey: "myKey")
}
// Чтение данных из другого приложения происходит аналогично.
Также через App Groups можно использовать общий FileManager контейнер или общую базу данных SQLite/Core Data.
4. UIActivityViewController (Share Sheet) Стандартный системный контроллер для отправки данных (текст, изображения, URL) в другие приложения.
5. UIPasteboard (Общий буфер обмена)
// Запись
UIPasteboard.general.string = "Текст для обмена"
// Для конфиденциальных данных можно использовать защищенные пастборды.
6. Shared Keychain Позволяет безопасно обмениваться логинами, паролями и токенами между приложениями одной команды разработчиков.
Рекомендации:
- Для глубоких ссылок с веб-сайтов используйте Universal Links.
- Для обмена данными между своими приложениями — App Groups или Shared Keychain.
- Для взаимодействия со сторонними приложениями — Custom URL Schemes или Share Sheet.