Swift 将表单作为 PDF 发送到电子邮件
Posted
技术标签:
【中文标题】Swift 将表单作为 PDF 发送到电子邮件【英文标题】:Swift send a form to an email as a PDF 【发布时间】:2021-11-21 16:31:50 【问题描述】:我在编码方面非常新,我只想制作一个小应用程序,其中有一个表格和一个发送按钮,如果你填写表格,所有数据都应该作为 pdf 格式并发送到电子邮件。我现在只有表格和名称,但我怎样才能将数据发送到电子邮件。最重要的一点是它是一个 pdf 文件。
import SwiftUI
struct ContentView: View
// Tour Daten
@State private var tournummer = ""
// Fahrer Daten
@State private var fahrernachname = ""
@State private var fahrervorname = ""
@State private var fahrergeburtstag = Date()
// Kunden Daten
@State private var kundenachname = ""
@State private var kundevorname = ""
@State private var kundegeburtstag = Date()
// Fahrzeug Daten
@State private var kilometerstand = ""
// Ausstattung
@State private var warnweste = false
@State private var anzahlschlüßel = 1
@State private var bereifung = "Winterreifen"
var body: some View
NavigationView
Form
// Auftragsinformationen
Section(header: Text("Auftrags informationen"))
TextField("Tour Nummer", text: $tournummer)
// Fahrer Daten
Section(header: Text("Fahrer Daten"))
TextField("Nachname", text: $fahrernachname)
TextField("Vorname", text: $fahrervorname)
DatePicker("Geburtstag", selection: $fahrergeburtstag, displayedComponents: .date)
// Kunden Daten
Section(header: Text("Kunden Daten"))
TextField("Nachname", text: $kundenachname)
TextField("Vorname", text: $kundevorname)
DatePicker("Geburtstag", selection: $kundegeburtstag, displayedComponents: .date)
// Fahrzeug Daten
Section(header: Text("Fahrzeug Daten"))
TextField("Kilometerstand", text: $kilometerstand)
// Ausstattung
Section(header: Text("Ausstattung"))
Toggle("Warnweste Vorhanden", isOn: $warnweste)
Stepper("Schlüßel: \(anzahlschlüßel)", value: $anzahlschlüßel, in: 1...5)
Picker(
selection: $bereifung,
label: Text("Bereifung:"),
content:
Text("Winterreifen").tag("Winterreifen")
Text("Sommerreifen").tag("Sommerreifen")
Text("Allwetterreifen").tag("Allwetterreifen")
)
// Fahrzeug Bilder
Section(header: Text("Fahrzeug Fotos"))
Text("fotos hier einfügen omar muss googlen wie das geht hahaha")
// Hilfe und Service (in den footer legen!!!)
Section(header: Text("Hilfe und Service"))
Link("..-Logistik Webseite", destination: URL(string: "https://www.logistik....de")!)
Section(header: Text("®..-Logistik"))
// (Form ende) Nav Bar
.navigationTitle("MM-Logistik Protokoll")
.toolbar
ToolbarItemGroup(placement: .navigationBarTrailing)
Button
hideKeyboard()
label:
Image(systemName:"chevron.down")
struct ContentView_Previews: PreviewProvider
static var previews: some View
ContentView()
.preferredColorScheme(.dark)
.previewInterfaceOrientation(.portrait)
// Keyboard Hide
#if canImport(UIKit)
extension View
func hideKeyboard()
UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
#endif
【问题讨论】:
看看这个 SO 帖子:***.com/questions/56784722/swiftui-send-email 【参考方案1】:这是一个例子。您可以根据需要进行修改;
let sharingService = NSSharingService(named: NSSharingService.Name.composeEmail)
sharingService?.subject = "your subject field"
var items = [Any]()
items.append(variableWithYourFormDataAsString) // you can add more items
sharingService?.perform(withItems: items)
【讨论】:
在范围内找不到“NSSharingService”我该怎么办? 在文件顶部添加 import Cocoa以上是关于Swift 将表单作为 PDF 发送到电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
关于如何使用从其电子表格的html表单接收的数据创建pdf并通过电子邮件发送pdf文件的Google应用程序脚本