2017-09-15 9 views
0

CNMutableContact을 vCard로 이메일로 변환 할 수 있습니까? 아래 코드에서 CNMutableContact를 만들고 문서 디렉토리에 저장하고 있지만 저장하는 대신 직접 보낼 수 있습니까? 나는 그것을 구할 필요가 없다.이메일 CNContact as vCard

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]) 
    } 

답변

1

전자 메일에서 vcard로 연락처를 보내려면 아래 코드를 시도하십시오.

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)