Создание пользовательского интерфейса пользователя для использования с Airdrop, iOS
Я использую этот код в моем info.plist:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>AirDrop Profile File Type</string>
<key>LSHandlerRank</key>
<string>Default</string>
<key>LSItemContentTypes</key>
<array>
<string>com.apple.customProfileUTI.customprofile</string>
</array>
</dict>
</array>
объявить пользовательский тип файла, следуя приведенному здесь ответу, и посмотрел на связанный пример кода, но не смог следовать ему очень хорошо. У меня есть структура, которую я преобразовываю в данные, а затем делюсь ими с Airdrop, и я пытаюсь понять, как создать тип данных, чтобы принимающее устройство могло открыть мое приложение для получения данных.
Может кто-нибудь немного прояснить это для меня?
Ответ отслеживается здесь
1 ответ
Если ваше приложение определяет новый тип файла. тогда вам нужно определить этот пользовательский UTI в UTExportedTypeDeclarations
раздел Info.plist
,
Это может быть установлено в XCode на вкладке Info цели вашего приложения в разделе Exported UTIs или вы можете вручную обновить Info.plist, как показано ниже.
CFBundleDocumentTypes
должен объявить, какие типы файлов может открыть ваше приложение.
Вот такой тип файла, который представляет собой двоичный файл с расширением .fun
,
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeDescription</key>
<string>My Custom Binary File</string>
<key>UTTypeIdentifier</key>
<string>com.mycompany.myapp.myfiletype</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>fun</string>
</array>
</dict>
</dict>
</array>
С этим на месте, вы также можете настроить свой CFBundleDocumentTypes
поэтому ваше приложение предлагается для открытия таких файлов:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFiles</key>
<array/>
<key>CFBundleTypeName</key>
<string>My Custom Binary File</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>com.mycompany.myapp.myfiletype</string>
</array>
</dict>
</array>
Обратите внимание, как LSItemContentTypes
ценность CFBundleDocumentTypes
должны соответствовать UTI UTTypeIdentifier
,