iOS UIActivity Sharing
iOS UIActivity Sharing
UIActivity Sharing Simplified
З iOS 6 і далі, сторонні додатки отримали можливість ділитися даними такими як текст, URL-адреси або зображення, використовуючи механізми, такі як AirDrop, як зазначено в Посібнику з міждодаткової комунікації від Apple. Ця функція проявляється через системний лист активності обміну, який з'являється при взаємодії з кнопкою "Поділитися".
Вичерпний перелік усіх вбудованих варіантів обміну доступний за посиланням UIActivity.ActivityType. Розробники можуть вирішити виключити певні варіанти обміну, якщо вважають їх непридатними для свого додатку.
How to Share Data
Увага повинна бути зосереджена на:
Природі даних, що обмінюються.
Включенні користувацьких активностей.
Виключенні певних типів активностей.
Обмін здійснюється через створення UIActivityViewController
, до якого передаються елементи, призначені для обміну. Це досягається шляхом виклику:
Розробники повинні уважно перевірити UIActivityViewController
на наявність активностей та користувацьких активностей, з якими він ініціалізується, а також будь-яких вказаних excludedActivityTypes
.
Як отримати дані
Наступні аспекти є критично важливими при отриманні даних:
Оголошення користувацьких типів документів.
Визначення типів документів, які може відкривати додаток.
Перевірка цілісності отриманих даних.
Без доступу до вихідного коду, можна все ще перевірити Info.plist
на наявність ключів, таких як UTExportedTypeDeclarations
, UTImportedTypeDeclarations
та CFBundleDocumentTypes
, щоб зрозуміти, які типи документів може обробляти та оголошувати додаток.
Стисла інструкція щодо цих ключів доступна на Stackoverflow, підкреслюючи важливість визначення та імпортування UTI для системного визнання та асоціювання типів документів з вашим додатком для інтеграції в діалозі "Відкрити з...".
Динамічний підхід до тестування
Щоб протестувати відправку активностей, можна:
Підключитися до методу
init(activityItems:applicationActivities:)
, щоб захопити елементи та активності, які передаються.Визначити виключені активності, перехопивши властивість
excludedActivityTypes
.
Для отримання елементів це включає:
Поділитися файлом з додатком з іншого джерела (наприклад, AirDrop, електронна пошта), що викликає діалог "Відкрити з...".
Підключити
application:openURL:options:
серед інших методів, виявлених під час статичного аналізу, щоб спостерігати за реакцією додатка.Використовувати неправильно сформовані файли або техніки фуззингу для оцінки надійності додатка.
Посилання
Last updated