Электронная почта CNContact как визитная карточка

Можно ли преобразовать CNMutableContact в визитную карточку по электронной почте? В приведенном ниже коде я создаю CNMutableContact и сохраняю его в каталоге документов, но можно ли отправить его напрямую вместо сохранения? Мне не нужно сохранять это.

let contact = CNMutableContact()
    contact.givenName = "John"
    contact.familyName = "Doe"
    contact.emailAddresses = [
        CNLabeledValue(label: CNLabelWork, value: "[email protected]")
    ]
    let data = try! CNContactVCardSerialization.data(with: [contact])
    let s = String(data: data, encoding: String.Encoding.utf8)
    if let directoryURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first{
        let fileURL = directoryURL.appendingPathComponent("john.doe").appendingPathExtension("vcf")
        try! data.write(to: fileURL, options: [.atomicWrite])
    }

person Nitesh    schedule 15.09.2017    source источник


Ответы (1)


Попробуйте приведенный ниже код для отправки контакта в виде визитной карточки по электронной почте.

let contact = CNMutableContact()
   contact.givenName = "John"
   contact.familyName = "Doe"
   contact.emailAddresses = [
       CNLabeledValue(label: CNLabelWork, value: "[email protected]")
   ]
   let data = try! CNContactVCardSerialization.data(with: [contact])

let mailComposer: MFMailComposeViewController = MFMailComposeViewController()
           mailComposer.mailComposeDelegate = self
           mailComposer.setSubject("emailsubject".localize())
           // mailComposer.setMessageBody("", isHTML: false)
           mailComposer.addAttachmentData(data), mimeType: "text/vcf", fileName: "contacts.vcf")
           self.present(mailComposer, animated: true, completion: nil)
person Hiren    schedule 15.09.2017