diff --git a/MAUI/Anyline.Examples.MAUI.csproj b/MAUI/Anyline.Examples.MAUI.csproj index d91e085..d039362 100644 --- a/MAUI/Anyline.Examples.MAUI.csproj +++ b/MAUI/Anyline.Examples.MAUI.csproj @@ -18,7 +18,7 @@ 9C37433F-9192-4C96-B49A-B9A7E047FBC2 - 7.0.0 + 8.0.0 1 12.0 @@ -79,8 +79,8 @@ - - + + diff --git a/MAUI/Platforms/Android/CustomRenderers/AnylineScanningViewRenderer.cs b/MAUI/Platforms/Android/CustomRenderers/AnylineScanningViewRenderer.cs index d258c04..fa44db2 100644 --- a/MAUI/Platforms/Android/CustomRenderers/AnylineScanningViewRenderer.cs +++ b/MAUI/Platforms/Android/CustomRenderers/AnylineScanningViewRenderer.cs @@ -89,7 +89,12 @@ private void _scanView_CameraError(object sender, CameraErrorEventArgs e) private void _scanView_CameraOpened(object sender, CameraOpenedEventArgs e) { if (_scanView != null) - _scanView.Start(); + { + if (_scanView.IsInitialized) + { + _scanView.Start(); + } + } } /// @@ -178,7 +183,10 @@ private void DisposeAnyline() { if (_scanView != null) { - _scanView.Stop(); + if (_scanView.IsInitialized) + { + _scanView.Stop(); + } _scanView.CameraView.CameraOpened -= _scanView_CameraOpened; _scanView.CameraView.CameraError -= _scanView_CameraError; _scanView.CameraView.ReleaseCameraInBackground(); diff --git a/MAUI/Platforms/iOS/CustomRenderers/AnylineScanningViewRenderer.cs b/MAUI/Platforms/iOS/CustomRenderers/AnylineScanningViewRenderer.cs index 6a3a0df..38b57bd 100644 --- a/MAUI/Platforms/iOS/CustomRenderers/AnylineScanningViewRenderer.cs +++ b/MAUI/Platforms/iOS/CustomRenderers/AnylineScanningViewRenderer.cs @@ -86,7 +86,7 @@ private void StartAnylineScanner() return; } - var success = _scanView.ScanViewPlugin.StartWithError(out error); + var success = _scanView.ViewPlugin.StartWithError(out error); if (!success) { if (error != null) @@ -102,9 +102,9 @@ private void StartAnylineScanner() protected void DisposeAnyline() { - if (_scanView != null && _scanView.ScanViewPlugin != null) + if (_scanView != null && _scanView.ViewPlugin != null) { - _scanView.ScanViewPlugin.Stop(); + _scanView.ViewPlugin.Stop(); } _scanView?.Dispose(); diff --git a/MAUI/Platforms/iOS/Handlers/AnylineHandler.iOS.cs b/MAUI/Platforms/iOS/Handlers/AnylineHandler.iOS.cs index 55c8289..a13ed4d 100644 --- a/MAUI/Platforms/iOS/Handlers/AnylineHandler.iOS.cs +++ b/MAUI/Platforms/iOS/Handlers/AnylineHandler.iOS.cs @@ -86,7 +86,7 @@ protected override void ConnectHandler(UIView PlatformView) private void StartAnyline() { NSError error = null; - bool success = _scanView.ScanViewPlugin.StartWithError(out error); + bool success = _scanView.ViewPlugin.StartWithError(out error); if (!success) { @@ -113,7 +113,7 @@ protected override void DisconnectHandler(UIView PlatformView) // PlatformView.Delegate = null; //} _scanView.StopCamera(); - _scanView.ScanViewPlugin.Stop(); + _scanView.ViewPlugin.Stop(); PlatformView.RemoveFromSuperview(); } } diff --git a/MAUI/Platforms/iOS/NFC/NFCScanningViewRenderer.cs b/MAUI/Platforms/iOS/NFC/NFCScanningViewRenderer.cs index 140e1f6..05d6be7 100644 --- a/MAUI/Platforms/iOS/NFC/NFCScanningViewRenderer.cs +++ b/MAUI/Platforms/iOS/NFC/NFCScanningViewRenderer.cs @@ -18,7 +18,8 @@ public override void WillMoveToWindow(UIWindow window) if (window != null) { InitializeAnylineScanView(); - _nfcDetector = new ALNFCDetector(this, out NSError error); + NSError error = null; + _nfcDetector = new ALNFCDetector(this, out error); } else { @@ -77,7 +78,7 @@ public override void SubviewAdded(UIView uiview) private void StartMRZScanner() { NSError error = null; - var success = _scanView.ScanViewPlugin.StartWithError(out error); + var success = _scanView.ViewPlugin.StartWithError(out error); if (!success) { if (error != null) @@ -176,9 +177,9 @@ public void NfcFailedWithError(NSError error) #region teardown protected void DisposeAnyline() { - if (_scanView != null && _scanView.ScanViewPlugin != null) + if (_scanView != null && _scanView.ViewPlugin != null) { - _scanView.ScanViewPlugin.Stop(); + _scanView.ViewPlugin.Stop(); } _scanView?.Dispose(); diff --git a/MAUI/Resources/Raw/Configs/energy_analog_digital_config.json b/MAUI/Resources/Raw/Configs/energy_analog_digital_config.json index 85d8bd8..9205e49 100644 --- a/MAUI/Resources/Raw/Configs/energy_analog_digital_config.json +++ b/MAUI/Resources/Raw/Configs/energy_analog_digital_config.json @@ -35,7 +35,7 @@ } }, "scanFeedbackConfig": { - "style": "CONTOUR_RECT", + "style": "contour_rect", "strokeColor": "0099FF", "strokeWidth": 2, "fillColor": "220099FF", diff --git a/MAUI/Resources/Raw/Configs/id_config_arabic.json b/MAUI/Resources/Raw/Configs/id_config_arabic.json index e572b96..ae10aee 100644 --- a/MAUI/Resources/Raw/Configs/id_config_arabic.json +++ b/MAUI/Resources/Raw/Configs/id_config_arabic.json @@ -67,8 +67,8 @@ "feedbackStrokeColor": "0099FF" }, "scanFeedbackConfig": { - "style": "CONTOUR_RECT", - "visualFeedbackRedrawTimeout": 100, + "style": "contour_rect", + "redrawTimeout": 100, "strokeColor": "0099FF", "fillColor": "220099FF", "beepOnResult": true, diff --git a/MAUI/Resources/Raw/Configs/id_config_cyrillic.json b/MAUI/Resources/Raw/Configs/id_config_cyrillic.json index 0283612..38e8611 100644 --- a/MAUI/Resources/Raw/Configs/id_config_cyrillic.json +++ b/MAUI/Resources/Raw/Configs/id_config_cyrillic.json @@ -67,8 +67,8 @@ "feedbackStrokeColor": "0099FF" }, "scanFeedbackConfig": { - "style": "CONTOUR_RECT", - "visualFeedbackRedrawTimeout": 100, + "style": "contour_rect", + "redrawTimeout": 100, "strokeColor": "0099FF", "fillColor": "220099FF", "beepOnResult": true, diff --git a/MAUI/Resources/Raw/Configs/id_config_jlp.json b/MAUI/Resources/Raw/Configs/id_config_jlp.json index 50f716d..4ed845f 100644 --- a/MAUI/Resources/Raw/Configs/id_config_jlp.json +++ b/MAUI/Resources/Raw/Configs/id_config_jlp.json @@ -22,7 +22,6 @@ } }, "cutoutConfig": { - "style": "rect", "maxWidthPercent": "70%", "maxHeightPercent": "70%", "alignment": "center", @@ -37,9 +36,9 @@ }, "feedbackStrokeColor": "0099FF" }, - "scanFeedback": { - "style": "RECT", - "visualFeedbackRedrawTimeout": 100, + "scanFeedbackConfig": { + "style": "rect", + "redrawTimeout": 100, "strokeColor": "0099FF", "fillColor": "220099FF", "beepOnResult": true, diff --git a/MAUI/Resources/Raw/Configs/id_config_mrz.json b/MAUI/Resources/Raw/Configs/id_config_mrz.json index 17d6899..d8f6613 100644 --- a/MAUI/Resources/Raw/Configs/id_config_mrz.json +++ b/MAUI/Resources/Raw/Configs/id_config_mrz.json @@ -45,7 +45,7 @@ }, "scanFeedbackConfig": { "style": "rect", - "visualFeedbackRedrawTimeout": 100, + "redrawTimeout": 100, "strokeColor": "0099FF", "fillColor": "220099FF", "beepOnResult": true, diff --git a/MAUI/Resources/Raw/Configs/id_config_universal.json b/MAUI/Resources/Raw/Configs/id_config_universal.json index 6dd8263..fe1107b 100644 --- a/MAUI/Resources/Raw/Configs/id_config_universal.json +++ b/MAUI/Resources/Raw/Configs/id_config_universal.json @@ -46,7 +46,7 @@ }, "scanFeedbackConfig": { "style": "contour_rect", - "visualFeedbackRedrawTimeout": 100, + "redrawTimeout": 100, "strokeColor": "0099FF", "fillColor": "220099FF", "beepOnResult": true, diff --git a/MAUI/Resources/Raw/Configs/mro_shipping_container_horizontal_config.json b/MAUI/Resources/Raw/Configs/mro_shipping_container_horizontal_config.json index 7c876a9..8d3b886 100644 --- a/MAUI/Resources/Raw/Configs/mro_shipping_container_horizontal_config.json +++ b/MAUI/Resources/Raw/Configs/mro_shipping_container_horizontal_config.json @@ -34,7 +34,7 @@ } }, "scanFeedbackConfig": { - "style": "CONTOUR_RECT", + "style": "contour_rect", "strokeColor": "0099FF", "fillColor": "220099FF", "blinkAnimationOnResult": true, diff --git a/MAUI/Resources/Raw/Configs/mro_shipping_container_vertical_config.json b/MAUI/Resources/Raw/Configs/mro_shipping_container_vertical_config.json index bce9a88..8ced4f6 100644 --- a/MAUI/Resources/Raw/Configs/mro_shipping_container_vertical_config.json +++ b/MAUI/Resources/Raw/Configs/mro_shipping_container_vertical_config.json @@ -33,7 +33,7 @@ } }, "scanFeedbackConfig": { - "style": "CONTOUR_RECT", + "style": "contour_rect", "strokeColor": "0099FF", "fillColor": "220099FF", "blinkAnimationOnResult": true, diff --git a/MAUI/Resources/Raw/Configs/mro_usnr_config.json b/MAUI/Resources/Raw/Configs/mro_usnr_config.json index 84a3adf..6c3cbaf 100644 --- a/MAUI/Resources/Raw/Configs/mro_usnr_config.json +++ b/MAUI/Resources/Raw/Configs/mro_usnr_config.json @@ -33,7 +33,7 @@ } }, "scanFeedbackConfig": { - "style": "CONTOUR_RECT", + "style": "contour_rect", "strokeColor": "0099FF", "fillColor": "220099FF", "beepOnResult": true, diff --git a/MAUI/Resources/Raw/Configs/vehicle_registration_certificate_config.json b/MAUI/Resources/Raw/Configs/vehicle_registration_certificate_config.json index 9bb344c..43a29ab 100644 --- a/MAUI/Resources/Raw/Configs/vehicle_registration_certificate_config.json +++ b/MAUI/Resources/Raw/Configs/vehicle_registration_certificate_config.json @@ -49,7 +49,7 @@ }, "scanFeedbackConfig": { "style": "contour_rect", - "visualFeedbackRedrawTimeout": 100, + "redrawTimeout": 100, "strokeColor": "0099FF", "fillColor": "220099FF", "beepOnResult": true, diff --git a/MAUI/Resources/Raw/Configs/workflows_config_parallel_first_scan.json b/MAUI/Resources/Raw/Configs/workflows_config_parallel_first_scan.json index c9f97c1..13f19de 100644 --- a/MAUI/Resources/Raw/Configs/workflows_config_parallel_first_scan.json +++ b/MAUI/Resources/Raw/Configs/workflows_config_parallel_first_scan.json @@ -18,7 +18,6 @@ "vinConfig": {} }, "cutoutConfig": { - "style": "rect", "width": 720, "alignment": "top_half", "maxWidthPercent": "70%", diff --git a/MAUI/Resources/Raw/Configs/workflows_config_parallel_scanning.json b/MAUI/Resources/Raw/Configs/workflows_config_parallel_scanning.json index 69f97b9..907fc66 100644 --- a/MAUI/Resources/Raw/Configs/workflows_config_parallel_scanning.json +++ b/MAUI/Resources/Raw/Configs/workflows_config_parallel_scanning.json @@ -14,7 +14,6 @@ "startScanDelay": 0 }, "cutoutConfig": { - "style": "rect", "maxWidthPercent": "100%", "width": 768, "alignment": "top_half", diff --git a/MAUI/Resources/Raw/Configs/workflows_config_serial_scanning.json b/MAUI/Resources/Raw/Configs/workflows_config_serial_scanning.json index e19121c..af21e12 100644 --- a/MAUI/Resources/Raw/Configs/workflows_config_serial_scanning.json +++ b/MAUI/Resources/Raw/Configs/workflows_config_serial_scanning.json @@ -98,7 +98,7 @@ }, "scanFeedbackConfig": { "style": "contour_rect", - "visualFeedbackRedrawTimeout": 100, + "redrawTimeout": 100, "strokeColor": "0099FF", "fillColor": "220099FF", "beepOnResult": true, diff --git a/README.md b/README.md index 2961902..780bcf1 100644 --- a/README.md +++ b/README.md @@ -5,9 +5,9 @@ Anyline provides an easy-to-use SDK for applications to enable Optical Character * The Anyline .NET SDK is essentially a Binding Library that wraps around the native Anyline SDK so all native functionality can be simply invoked via C# calls. * For more information, please refer to the -native Anyline [Android](https://documentation.anyline.com/toc/platforms/android/index.html) and [iOS](https://documentation.anyline.com/toc/platforms/ios/index.html) SDKs documentation pages. +native Anyline [Android](https://documentation.anyline.com/android-sdk-component/latest/index.html) and [iOS](https://documentation.anyline.com/ios-sdk-component/latest/index.html) SDKs documentation pages. - + ## Quick Start ## @@ -22,12 +22,12 @@ native Anyline [Android](https://documentation.anyline.com/toc/platforms/android ### Examples ### The [MAUI](MAUI) directory provides source code for the Anyline MAUI Example App. Simply build & run the example project for your desired platform and enjoy scanning :) -The examples app is designed in a generic way to work with any technical capability. In your use-case, it is advised to parse the scan results directly into the specific plugin objects. Check the "PLUGIN SPECIFICS" section on the [Android](https://documentation.anyline.com/toc/platforms/android/plugins/index.html) and [iOS](https://documentation.anyline.com/toc/platforms/ios/plugins/index.html) documentation pages for more information. +The examples app is designed in a generic way to work with any technical capability. In your use-case, it is advised to parse the scan results directly into the specific plugin objects. Check the "PLUGIN SPECIFICS" section on the [Android](https://documentation.anyline.com/android-sdk-component/latest/index.html) and [iOS](https://documentation.anyline.com/ios-sdk-component/latest/index.html) documentation pages for more information. ### Available Technical Capabilities ###