如何在swift中查找ios中二维码的内容类型?
How to find content type of qr code in ios in swift?
我正在开发一个 iOS 应用程序,我在其中扫描 QRCode 并向用户显示结果。我正在通过 Apple 提供的本机库扫描 QRCode。我可以从 QRCode 中得到 string/content,但我无法区分和解析 string/content。我想获取 QRCode 中存在的数据类型(区分数据类型),因为它可能有不同类型的数据,例如 url, text, mcard, email data
。我还想解析内容,即获取数据字段,例如在电子邮件数据的情况下,我想获取电子邮件、抄送、主题和正文字段。这个问题 How are different content types within QR-Codes distinguished? 没有帮助,因为它没有可以帮助我的公认答案。
从AVMetadataObject
扫描得到的.stringValue
只是-一个"string value."由你来解析内容。
有许多预定义的数据类型,例如
- a URL,其中字符串以"https://"开头;
- 一封电子邮件 link,例如"mailto:somebody@example.com?subject=Mail%20from%20Our%20Site"
还有一个"VCard"规范,可以用"field"值格式化:
BEGIN:VCARD
VERSION:3.0
N:Owen;Sean;;;
FN:Sean Owen
TITLE:Software Engineer
EMAIL;TYPE=INTERNET;TYPE=WORK;TYPE=PREF:srowen@google.com
URL;TYPE=Homepage:https://example.com
END:VCARD
例如。
因此,您检查字符串的开头。如果它以 "https://" 开头,您的应用可能会启动 Safari。如果它以 "mailto:" 开头,您可以启动邮件应用程序。如果它以 "BEGIN:VCARD" 开头,那么您将解析预定义字段并在您的应用中使用数据。
这里有一个很好的预定义类型总结(虽然,可能有点out-of-date):https://github.com/zxing/zxing/wiki/Barcode-Contents
当然,您可以根据自己的目的创建自己的类型。例如,您可以创建一个包含以下内容的 QR-Code:
myTypeA:Robert
或:
myTypeB:Driver
然后您的应用程序将获取该字符串,如果它以 myTypeA:
开头则执行一项操作,如果它以 myTypeB:
.
开头则执行另一项操作
我正在开发一个 iOS 应用程序,我在其中扫描 QRCode 并向用户显示结果。我正在通过 Apple 提供的本机库扫描 QRCode。我可以从 QRCode 中得到 string/content,但我无法区分和解析 string/content。我想获取 QRCode 中存在的数据类型(区分数据类型),因为它可能有不同类型的数据,例如 url, text, mcard, email data
。我还想解析内容,即获取数据字段,例如在电子邮件数据的情况下,我想获取电子邮件、抄送、主题和正文字段。这个问题 How are different content types within QR-Codes distinguished? 没有帮助,因为它没有可以帮助我的公认答案。
从AVMetadataObject
扫描得到的.stringValue
只是-一个"string value."由你来解析内容。
有许多预定义的数据类型,例如
- a URL,其中字符串以"https://"开头;
- 一封电子邮件 link,例如"mailto:somebody@example.com?subject=Mail%20from%20Our%20Site"
还有一个"VCard"规范,可以用"field"值格式化:
BEGIN:VCARD
VERSION:3.0
N:Owen;Sean;;;
FN:Sean Owen
TITLE:Software Engineer
EMAIL;TYPE=INTERNET;TYPE=WORK;TYPE=PREF:srowen@google.com
URL;TYPE=Homepage:https://example.com
END:VCARD
例如。
因此,您检查字符串的开头。如果它以 "https://" 开头,您的应用可能会启动 Safari。如果它以 "mailto:" 开头,您可以启动邮件应用程序。如果它以 "BEGIN:VCARD" 开头,那么您将解析预定义字段并在您的应用中使用数据。
这里有一个很好的预定义类型总结(虽然,可能有点out-of-date):https://github.com/zxing/zxing/wiki/Barcode-Contents
当然,您可以根据自己的目的创建自己的类型。例如,您可以创建一个包含以下内容的 QR-Code:
myTypeA:Robert
或:
myTypeB:Driver
然后您的应用程序将获取该字符串,如果它以 myTypeA:
开头则执行一项操作,如果它以 myTypeB:
.