use*_*376 7 html-email swiftui
我一直在使用 UIViewControllerRepresentable 和 MFmailComposer 从 SwiftUI 视图预填充电子邮件。发送消息时,我在控制台中收到以下错误:
2020-10-02 09:27:58.559227-0400 CC0 Notes2[1288:471808] [PPT] 创建与 PPT 通信所需的 CFMessagePort 时出错。
尽管有错误,消息发送成功。在 iPadOS 上,我收到一个 Swoosh 来显示邮件已发送,但在 iOS 上我收到了成功的邮件发送但没有 Swoosh 声音来确认发送。这个错误是一个错误吗?我使用的是 XCode 12.0.1、iPadOS 14.0.1 和 iPOS 14.0.1
如果我无法从 iOS 中获得 Swoosh,我如何利用发送结果向用户确认邮件已发送?
使用此代码:
struct MailView: UIViewControllerRepresentable {
@EnvironmentObject var theBody: GlobalData
var imageData: NoteImageData
@State private var ishowingSuccess = false
@Binding var isShowing: Bool
@Binding var result: Result<MFMailComposeResult, Error>?
class Coordinator: NSObject, MFMailComposeViewControllerDelegate {
@Binding var isShowing: Bool
@Binding var result: Result<MFMailComposeResult, Error>?
init(isShowing: Binding<Bool>,
result: Binding<Result<MFMailComposeResult, Error>?>) {
_isShowing = isShowing
_result = result
}
func mailComposeController(_ controller: MFMailComposeViewController,
didFinishWith result: MFMailComposeResult,
error: Error?) {
defer {
isShowing = false
}
guard error == nil else {
self.result = .failure(error!)
return
}
self.result = .success(result)
}
}
func makeCoordinator() -> Coordinator {
return Coordinator(isShowing: $isShowing,
result: $result)
}
func makeUIViewController(context: UIViewControllerRepresentableContext<MailView>) -> MFMailComposeViewController {
let vc = MFMailComposeViewController()
vc.mailComposeDelegate = context.coordinator
vc.setSubject("")
//vc.setMessageBody(imageData.description , isHTML: true)
vc.setMessageBody( theBody.mailBody, isHTML: true)
return vc
}
func updateUIViewController(_ uiViewController: MFMailComposeViewController,
context: UIViewControllerRepresentableContext<MailView>) {
}
}
Run Code Online (Sandbox Code Playgroud)
并拨打电子邮件:
.sheet(isPresented: $isShowingMailView) {
MailView(imageData: imageData, isShowing: self.$isShowingMailView, result: self.$result )
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
630 次 |
| 最近记录: |