Comment on page
Drivers License
func scanDriversLicense(
on viewController: UIViewController,
for country: Country,
doneLaunching: SybrinIdentity.doneLaunchingType? = nil,
success: SybrinIdentity.driversLicenseSuccessCallbackType? = nil,
failure: SybrinIdentity.failureCallbackType? = nil,
cancel: SybrinIdentity.cancelCallbackType? = nil
)
Handling the
doneLaunching
, success
, failure
or cancel
callbacks are optional but recommended.To find out if we support a country, check out Supported Documents!
To request support for a country, contact us!
Type | Description |
UIViewController | The controller you would like to present on. |
The country 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 drivers license. |
As explained in Features, the
success
callback will always return the country specific model but in its parent class form. However, this can be casted to the country specific model to access that country model's specific properties.This is not required, but is recommended if you would like to access the country model's specific properties.
Let's say that you provide the
scanDriversLicense
function with the .SouthAfrica
country parameter. The result will be of type SouthAfricaDriversLicenseModel, but is returned in its parent form DriversLicenseModel. To access all the data specific to SouthAfricaDriversLicenseModel you will need to cast the DriversLicenseModel to that type.success: { (model) in
if let southAfricaDriversLicense = model as? SouthAfricaDriversLicenseModel {
print("This is a south african drivers license model! \(southAfricaDriversLicense.identityNumber)")
}
}
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("Scan drivers license 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("Scan drivers license canceled")
}
SybrinIdentity.shared.scanDriversLicense(on: self, for: .SouthAfrica)
{ (didLaunch, message) in
if didLaunch {
print("Launched successfully!")
} else if let message = message {
print("Failed to launch because \(message)")
}
} success: { (model) in
if let southAfricaDriversLicense = model as? SouthAfricaDriversLicenseModel {
print("Scan drivers license success: \(southAfricaDriversLicense.identityNumber)")
}
} failure: { (message) in
print("Scan drivers license failed because \(message)")
} cancel: {
print("Scan drivers license canceled")
}
Last modified 1yr ago