Comment on page
Address Extraction
func captureWithCamera(
on viewController: UIViewController,
for document: Document,
doneLaunching: SybrinDocumentScanner.doneLaunchingType? = nil,
success: SybrinDocumentScanner.successCallbackType? = nil,
failure: SybrinDocumentScanner.failureCallbackType? = nil,
cancel: SybrinDocumentScannertity.cancelCallbackType? = nil
)
func captureWithGallery(
on viewController: UIViewController,
for document: DocumentType,
doneLaunching: SybrinDocumentScanner.doneLaunchingType? = nil,
success: SybrinDocumentScanner.successCallbackType? = nil,
failure: SybrinDocumentScanner.failureCallbackType? = nil,
cancel: SybrinDocumentScanner.cancelCallbackType? = nil
)
Handling the
doneLaunching
, success
, failure
or cancel
callbacks are optional but recommended.Type | Description |
UIViewController | The controller you would like to present on. |
The document type you would like to scan for. |
The
doneLaunching
callback will be executed after the view controller has successfully launched, or if the view controller failed to launch.Type | Description |
Bool | true if the view controller presented successfully; otherwise, false . |
String? | If an error occurs, a message describing the error; otherwise, nil . |
doneLaunching: { (didLaunch, message) in
if didLaunch {
print("Launched successfully!")
} else if let message = message {
print("Failed to launch because \(message)")
}
}
The
success
callback will be executed after scanning has finished and the view controller has been dismissed.Type | Description |
An object containing the results of the scanned document. |
This is not required, but is recommended if you would like to access the model's specific properties.
Let's say that you provide the captureWithCamera function with the
.AddressExtraction
parameter. The result will be of type AddressDocumentDataModel, but is returned in its parent form DataModel. To access all the data specific to AddressDocumentDataModel you will need to cast the DataModel to that type.success: { (model) in
if let addressData = model as? AddressDocumentDataModel {
print("This is an address document model! \(addressData.addresses)")
}
}
The
failure
callback will be executed after scanning has failed and the view controller has been dismissed.Type | Description |
String? | A message describing the error. |
failure: { (message) in
print("capture failed because \(message)")
}
The
cancel
callback will be executed after the user has dismissed the view controller and before scanning could finish.None
cancel: {
print("capture canceled")
}
SybrinDocumentScanner.shared.captureWithCamera(on: self, for: .AddressExtraction)
{ (didLaunch, message) in
if didLaunch {
print("Launched successfully!")
} else if let message = message {
print("Failed to launch because \(message)")
}
} success: { (model) in
if let addressData = model as? AddressDocumentDataModel {
print("This is an address document model! \(addressData.addresses)")
}
} failure: { (message) in
print("Scan document failed because \(message)")
} cancel: {
print("Scan document canceled")
}
SybrinDocumentScanner.shared.captureWithGallery(on: self, for: .AddressExtraction)
{ (didLaunch, message) in
if didLaunch {
print("Launched successfully!")
} else if let message = message {
print("Failed to launch because \(message)")
}
} success: { (model) in
if let addressData = model as? AddressDocumentDataModel {
print("This is an address document model! \(addressData.addresses)")
}
} failure: { (message) in
print("Scan document failed because \(message)")
} cancel: {
print("Scan document canceled")
}
Last modified 1yr ago