Как отправить документы типа пакетов в качестве почтового вложения?
-
11-12-2019 - |
Вопрос
У меня есть документ типа пакета - I.e. Это действительно папка, но она использует NSFileWrapper
и соответствует com.apple.package
, чтобы отображаться как файл - который я хочу поделиться по электронной почте.Я сделал MFMailComposeViewController
, и я пытаюсь выработать, что дать первому параметру addAttachmentData:mimeType:fileName:
.
Пакет содержит файл изображения и Plist, хотя это может измениться в будущем.
Как связать пакет к данным?Это правильный способ сделать это?
Решение
Как вы сказали, пакет на самом деле в папке.Он интерпретируется как пакет только на операционных системах OSX.
Таким образом, почтовый протокол не может интерпретировать его как пакет / как один файл, и видит только стандартную папку.
Единственный способ отправить это по электронной почте - это сжать файлы в один файл.Вы можете сделать это, создавая ZIP-архив вашего пакета или файл Tar.gz, например.
Есть несколько решений для создания ZIP-архива из кода в какао.Вы можете использовать библиотеку Libz и C-код напрямую или использовать некоторые сторонние библиотеки (у которых уже есть универсальный код и помогает вам сделать это проще, используя методы какао), как ziparchive или другие.
Другие советы
Мои файлы не велики, поэтому Zip LifeLL, и я также пытаюсь избежать использования третьего лица.Поэтому я придумал другой подход для прикрепления нескольких файлов в одном вложении электронной почты.
Во-первых, у меня уже есть объект NSFileWrapper, который содержит все файлы, которые я хочу в приложении.Ключ состоит в том, чтобы использовать метод сериала NSFileWrapper, чтобы получить объект NSDATA для использования для вложения электронной почты.Я использую «Приложение / октет-поток» для Mimetype.Когда я вернусь к открытию вложенности, я использую INITWITHSERIALIALICALICALICEDRIZENATIONSRESESSENTALRESENTALSENTALRESENTALSENTALSENTATIONESENTATIONANTATION:
Это работает для меня, потому что прикрепленный файл будет использоваться только и открыты моим приложением.Очевидно, что это не будет работать, если вам нужно что-то сделать с приложением за пределами вашего приложения.В этом случае Zip кажется, что это будет логический выбор.