diff --git a/CHANGELOG.md b/CHANGELOG.md index c88a7ba..c048c93 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,20 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 4.5.2021 3.1.9 + +## Fixed + +- Problems entering fullscreen will no longer abort the transaction. In these rare cases, transactions will be allowed to continue. +- Opera Touch is now a supported browser after working around a WebKit issue. +- When running Web SDK inside a react-native-webview, it no longer flags the environment as unsupported. + +## Internals + +- The following are now sent to the backend to improve telemetry and customer support: + - When Web SDK detects it's within an iframe, the window innerWidth and innerHeight are sent. + - Fullscreen status is sent. + ## 20.4.2021 3.1.8 ## Fixed diff --git a/README.md b/README.md index f61beef..ead74ca 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# iProov Biometrics Web SDK v3.1.8 +# iProov Biometrics Web SDK v3.1.9 ## 📖 Table of contents @@ -216,11 +216,12 @@ Note that inline CSS _is_ needed to provide critical styles for `` fo When `allow_landscape` is set to `true`, handheld devices will be able to start in landscape orientation. Here is the behaviour: -* For GPA and Liveness, landscape orientation is blocked in most handheld devices. -* For Liveness, no handheld device will be able to start in landscape mode, regardless of this setting. -* This blocking behaviour is not enforced Android tablets due to the varying position of their camera. -* When in landscape mode in an affected UX, the iProov component will display the `rotate_portrait` slot. -* Desktop devices are unaffected by `allow_landscape`. + +- For GPA and Liveness, landscape orientation is blocked in most handheld devices. +- For Liveness, no handheld device will be able to start in landscape mode, regardless of this setting. +- This blocking behaviour is not enforced Android tablets due to the varying position of their camera. +- When in landscape mode in an affected UX, the iProov component will display the `rotate_portrait` slot. +- Desktop devices are unaffected by `allow_landscape`. See [slots](#-slots) for details on how to override the `rotate_portrait` slot. @@ -228,7 +229,6 @@ See [slots](#-slots) for details on how to override the `rotate_portrait` slot. ``` - #### Show Countdown By setting `show_countdown` to `true`, a countdown will be shown to the user before scanning actually starts. If this is set to `false`, when the users face becomes properly aligned the scanner will start in 2 seconds as long as the users face is still properly aligned. By default, `show_countdown` is `false`. The example below shows how to enable the countdown. @@ -392,24 +392,24 @@ Every event has a [detail](https://developer.mozilla.org/en-US/docs/Web/API/Cust The available events are detailed below with any extra properties that are supplied: -| Event | Extra Properties | Description | -| ----------------------- | -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| **cancelled** | _feedback, reason_ | User has cancelled iProov by exiting fullscreen | -| **connecting** | None | The SDK is connecting to the server. You should provide an indeterminate progress indicator to let the user know that the connection is taking place. | -| **connected** | None | The SDK has connected. You should hide any progress indication at this point. | -| **error** | _feedback, reason_ | iProov encountered an error while processing the authentication | -| **failed** | _type, passed, feedback, reason_ | Authentication was unsuccessful, the user needs to try again | -| **interrupted** | _feedback, reason_ | Fast fullscreen exit possible due to software. Retry is possible. | -| **multiple_cameras** \* | _devices, device_selector, slot_ | If `enable_camera_selector` is `true` returns an array of devices if more than 1 video device is detected | -| **passed** | _type, passed_ | Authentication was successful, the result can now be validated | -| **permission** | None | Camera permission is unknown & not blocked, show permission | -| **permission_denied** | None | User has blocked access to the camera | -| **progress** | _progress, message_ | iProov has published a progress update for the authentication | -| **ready** | None | iProov has initialised successfully and has camera permission | -| **started** | None | User has started iProov by launching into fullscreen | -| **streaming** | None | User has started streaming. The client remains in fullscreen. | -| **streamed** | None | User has finished streaming and the client has exited fullscreen _(Not guaranteed to fire every time due to a possible fast failure or any errors that can occur and should be handled within your event handlers accordingly)_ | -| **unsupported** | _feedback, reason_ | Browser does not support using iProov | +| Event | Extra Properties | Description | +| ----------------------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **cancelled** | _feedback, reason_ | User has cancelled iProov by exiting fullscreen | +| **connecting** | None | The SDK is connecting to the server. You should provide an indeterminate progress indicator to let the user know that the connection is taking place. | +| **connected** | None | The SDK has connected. You should hide any progress indication at this point. | +| **error** | _feedback, reason_ | iProov encountered an error while processing the authentication | +| **failed** | _type, passed, feedback, reason_ | Authentication was unsuccessful, the user needs to try again | +| **interrupted** | _feedback, reason_ | Fast fullscreen exit possible due to software. Retry is possible. | +| **multiple_cameras** \* | _devices, device_selector, slot_ | If `enable_camera_selector` is `true` returns an array of devices if more than 1 video device is detected | +| **passed** | _type, passed_ | Authentication was successful, the result can now be validated | +| **permission** | None | Camera permission is unknown & not blocked, show permission | +| **permission_denied** | None | User has blocked access to the camera | +| **progress** | _progress, message_ | iProov has published a progress update for the authentication | +| **ready** | None | iProov has initialised successfully and has camera permission | +| **started** | None | User has started iProov by launching into fullscreen | +| **streaming** | None | User has started streaming. The client remains in fullscreen. | +| **streamed** | None | User has finished streaming and the client has exited fullscreen _(Not guaranteed to fire every time due to a possible fast failure or any errors that can occur and should be handled within your event handlers accordingly)_ | +| **unsupported** | _feedback, reason_ | Browser does not support using iProov | > \* See [Multiple Camera Example](https://github.com/iProov/web/wiki/Camera-Selection-Example) for an example demonstrating how a camera selection feature could be implemented. @@ -438,11 +438,11 @@ In the case of the **cancelled**, **interrupted**, **failed**, **error** and **u | Feedback | Reason | Event | | ------------------------------------- | --------------------------------------------------------- | -----------------------: | | **client_browser** | The browser is not supported | _unsupported_ | -| **error_fullscreen_change** | Exited fullscreen without completing iProov | _cancelled, interrupted_ | +| **error_fullscreen_change** | Exited fullscreen without completing iProov | _cancelled, interrupted_ | | **ambiguous_outcome** | Sorry, ambiguous outcome | _failed_ | | **error_camera_in_use** | The camera is already in use and cannot be accessed | _error_ | | **error_expired_token** | The token has already been used or has expired | _error_ | -| **error_no_face_found** | No face could be found | _error_ | +| **error_no_face_found** | No face could be found | _error_ | | **error_invalid_token** | The token is invalid | _error_ | | **lighting_backlit** | Strong light source detected behind you | _failed_ | | **lighting_face_too_bright** | Too much light detected on your face | _failed_ | @@ -592,7 +592,7 @@ For known issues, [see here](#known-issues). | ----------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Windows** | N/A | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | N/A | | **MacOS** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: \* | :heavy_check_mark: | N/A | -| **iOS** | :heavy_check_mark: | :heavy_check_mark: On iOS 14.3+ | :heavy_check_mark: On iOS 14.3+ | :heavy_check_mark: \* | :x: | N/A | +| **iOS** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: \* | :heavy_check_mark: | N/A | | **Android** | N/A | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: \* | :heavy_check_mark: | :heavy_check_mark: | > \* See [known issues](#known-issues) for more details