https://github.com/outsystems/osbarcodelib-ios
OutSystems-owned repository for the Barcode plugin's iOS library.
https://github.com/outsystems/osbarcodelib-ios
snyk-mobile
Last synced: 4 months ago
JSON representation
OutSystems-owned repository for the Barcode plugin's iOS library.
- Host: GitHub
- URL: https://github.com/outsystems/osbarcodelib-ios
- Owner: OutSystems
- License: mit
- Created: 2023-10-31T16:43:56.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2026-02-04T13:40:48.000Z (4 months ago)
- Last Synced: 2026-02-05T00:41:51.284Z (4 months ago)
- Topics: snyk-mobile
- Language: Swift
- Size: 16.4 MB
- Stars: 4
- Watchers: 2
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# OSBarcodeLib
The `OSBarcodePluginLib-iOS` is a library built using `Swift` that offers you a barcode scanner for your iOS application. Supports many popular encoding types of 1D and 2D barcodes, such as:
- 1D Barcodes
- Codabar (*available from iOS 15.0 onwards*)
- Code 39
- Code 93
- Code 128
- Databar (GS1) (*available from iOS 15.0 onwards*)
- EAN-8
- EAN-13
- ITF
- ITF-14
- ISBN-10
- ISBN-13
- ISBN-13 Dual Barcode
- RSSExpanded (*available from iOS 15.0 onwards*)
- UPC-A
- UPC-E
- 2D Barcodes
- Aztec Code
- Data Matrix
- Micro PDF 417 (*available from iOS 15.0 onwards*)
- Micro QR (*available from iOS 15.0 onwards*)
- PDF 417
- QR Code
The `OSBARCManagerProtocol` protocol provides the main feature of the library, which is the **Barcode Scanner**, to be detailed in the following sections.
The `OSBARCManagerFactory` provides a way to create the Scanner Flow Manager - the `OSBARCManager` that implements the `OSBARCManagerProtocol` protocol.
## Index
- [Motivation](#motivation)
- [Usage](#usage)
- [Methods](#methods)
- [Scan Barcode](#scan-barcode)
## Motivation
This library is to be used by the [Barcode Plugin](https://github.com/OutSystems/cordova-outsystems-barcode). The repository contains a `scripts/build_framework.sh` script that allows the creation of the `OSBarcodeLib.xcframework`. This framework should then be imported into the Cordova bridge as a framework.
## Usage
The library is available on CocoaPods as `OSBarcodeLib`. The following is an example of how to insert it into a Cordova plugin (through the `plugin.xml` file).
```xml
...
...
```
It can also be included as a dependency on other podspecs.
```ruby
Pod::Spec.new do |s|
...
s.dependency 'OSBarcodeLib', '${version to use}'
...
end
```
## Methods
The library uses the following method to interact with:
### Scan Barcode
```swift
func scanBarcode(with parameters: OSBARCScanParameters) async throws -> OSBARCScanResult
```
Triggers the barcode scanner, returning asynchronously, if successful, the scanned value. In case of error, it can throw one of the following:
- **cameraAccessDenied**: if camera access has not been given.
- **scanningCancelled**: If scanning has been cancelled by the end-user.
The method is composed of the following input parameters, contained inside `OSBARCScanParameters` structure:
- **scanInstructions**: The text to be displayed on the scanning reader view.
- **scanButtonText**: The text to be displayed for the scan button, if configured. `Nil` value means that the button will not be shown.
- **cameraDirection**: Indicates the camera to use to gather input. It can be `back` or `front`.
- **scanOrientation**: Indicates the scanning reader view orientation. It can be locked to `portrait` or `landscape` or adapted to the device's current orientation if the value is `adaptive`.
- **hint**: Indicates scan of a specific format (e.g. only qr code). `Nil` or `unknown` value means it can scan all.
The method returns a `OSBARCScanResult structure`, containing:
- **text**: The actual textual data that was scanned.
- **format**: The format that was scanned, or `unknown` if unable to determine.